[Haskell-cafe] Type System vs Test Driven Development
Sönke Hahn
shahn at cs.tu-berlin.de
Wed Jan 5 15:30:36 CET 2011
Erik de Castro Lopo wrote:
> Jonathan Geddes wrote:
>
> <snip>
>
>> So, am I missing the benefits of TDD in my Haskell code?
>
> Probably. I work on a project which has 40000+ lines of
> haskell code (a compiler written in haskell) and has a huge
> test suite that is a vital to continued development.
<snip>
If I may, I would like to agree with you both: A test suite should ideally
cover all the aspects of the tested program, that are not checked statically
by the compiler. So in python, I end up writing test cases that check for
runtime type errors; in haskell, I don't. In both languages, it's good
advice to write a test suite that checks the correctness of calculated
values.
Haskell's static type system feels to me like an automatically generated,
somehow dumb test suite. It does not replace a full-flegded hand-written
one, but it does replace a big part of it (that is, of what you would have
to write in a dynamic language). And it runs much faster.
I also tend to write test suites when I feel, the code exceeds a certain
level of complexity. This level is language dependent and in haskell's case,
it's pretty high. (I should probably lower that level and write more test
cases, but that seems to be true for all languages.)
And yes, haskell has great support for writing test suites.
More information about the Haskell-Cafe
mailing list