I don't have a problem with using TDD *and* type-safety to the full extent of usefulness, but the lifecycle/process isn't what TDD experts would call proper TDD. I do use HSpec, very happily. The author has done a truly excellent job with it. Process is something like: write types, validate types -> fill holes, validate terms against types -> compose functions to see if results are sane, go back to 1st or 2nd step if not. -> Are there useful invariants QuickCheck can express? Write those first. Repeat cycle as needed. -> Decide on meaningful but compact functional/integration tests, repeat cycle as needed. Example HSpec tests (just functional/integration): http://github.com/bitemyapp/bloodhound/ On Tue, Jun 24, 2014 at 3:55 PM, Gautier DI FOLCO <gautier.difolco@gmail.com
wrote:
Hi all,
I'm a huge fan of TDD (Test-Driven Development) et I used to use tools such as RSpec (Ruby). So naturally, I looked to HSpec, but it seems not idiomatic in Haskell. I have a bunch of questions: - Do you do TDD? - Which tools do you use? - Is doctest "better" (in some senses) than HSpec? Why? - Are HSpec and Doctest complementary? If so, in which case do you use one or another? - Is there some Haskell-specific good practices do to TDD?
Thanks in advance for your lights.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe