James Herdman
3/25/2006 5:11:00 AM
On 2006-03-25 00:09:47 -0500, ara.t.howard@noaa.gov said:
> On Sat, 25 Mar 2006, James Herdman wrote:
>
>> How does one write a unit test for a mixin? I gathered since our unit
>> test is a class (TestClassName < Test::Unit::TestCase), we could just
>> include said module into said class. However, I've ran into a problem.
>>
>> Suppose my project directory is as follows:
>>
>> ../project_dir/trunk/lib # Where all my classes and scripts go
>> ../project_dir/trunk/tests # Where all my tests go
>>
>> My mixin resides in the lib folder, and normally I use this neat trick
>> to handle this discreprancy in file locations:
>>
>> $:.unshift File.join(File.dirname(__FILE__), "..", "lib") # Thank you Pick Ax!
>>
>> Why doesn't this seem to work for mixins? Where does Ruby look for mixins?
>>
>> I'm assuming it's a path problem despite the fact that Ruby groans that
>> the name I'm providing it is an unitialized constant (e.g. include
>> Mixin -- if I write include "Mixin", Ruby tells me "wrong argument type
>> String (expected Module)")
>>
>> Thank you,
>>
>> James Herdman
>
> a) you still must require your mixin using the __FILE__ method
> b) then you mix it in as normal
>
>
> eg
>
> require 'mixin'
>
> class Test < Test::Unit::TestCase
> include Mixin
> end
>
> make sense?
>
> regards.
>
> -a
Indeed! Thank you. I feel like a dolt, but now I'll never forget again =)
James Herdman