[Haskell-beginners] Where do you put your tests?

Magnus Therning magnus at therning.org
Sat Jul 21 20:04:35 CEST 2012


On Sat, Jul 21, 2012 at 7:50 PM, Michael Orlitzky <michael at orlitzky.com> wrote:
> On 07/19/2012 09:27 AM, damodar kulkarni wrote:
>>
>>     Good because library dependencies are reduced, but bad because tests
>>     are somewhat "disconnected" from the functions they are testing.
>>
>>
>> AFAIK, it's a good engineering practice to separate the tests from the
>> code they are supposed to test. Code management issues will be there,
>> but those can be taken care with the help of cabal like tool.
>> That way, a person who wants to test will use the test-files and the one
>> who doesn't want will be spared the trouble of separating tests from the
>> intended function code.
>>
>
> This is the solution I'd prefer, but I quickly ran into a problem: if I
> want to test internal (non-exported) functions, the tests need to be in
> the same module as the code.
>
> Is there a way around this?
>
> (For now, I just put the code in the same file and depend on the test libs.)

A common issue.  I, and some others I've seen, have a FooInternal
module exporting *everything* for the tests, and a Foo module
exporting only the public API.

/M

-- 
Magnus Therning                      OpenPGP: 0xAB4DFBA4
email: magnus at therning.org   jabber: magnus at therning.org
twitter: magthe               http://therning.org/magnus



More information about the Beginners mailing list