On Tuesday 25 May 2010 14:36:46, Ionut G. Stan wrote: > On 5/25/10 2:50 PM, Daniel Fischer wrote: > > On Tuesday 25 May 2010 13:36:01, Ionut G. Stan wrote: > >> Hi, > >> > >> I'm doing TDD in pretty much all of the languages that I know, and I > >> want to introduce it early in my Haskell learning process. I wonder > >> though, if there's some established process regarding TDD, not unit > >> testing. > >> > >> I've heard of QuickCheck and HUnit, but I've also read that > >> QuickCheck is used mostly for testing pure code, while HUnit for > >> impure code? > > > > And ghci or hugs are the most used tools for testing, be the code pure > > or impure. > > Well, probably. I'm looking for an automated solution though. I want to > be able to rerun the tests on every commit or version release. >
Good practice. You can configure darcs to run the tests on every record (or version-tag or whatever). The testing in ghci/hugs is primarily done while writing the code, after that QuickCheck takes over. > >> What framework lends itself better for writing tests before the > >> actual production code? Can you point out to some resources regarding > >> this? > > > > You can write the QuickCheck properties that your functions should > > satisfy before implementing the functions. > > However, when you've determined the specs, it's rather unimportant > > whether you write the properties first or the functions, IMO. > > It may be true. I've got accustomed though to write code in iterative > steps, where I first think about the smallest feature that I want to > implement, then write the test, then again feature -> test -> > code/refactor. > > I will certainly have to adapt my work flow within the Haskell way of > doing things, until then though I'll start from what I know has produced > good results for me and change it along the way. > You will have to adapt your way of thinking about your tasks to Haskell (discover new fun ways of doing things :D), but I see no reason why you should stop writing the tests first. What I meant is, once you know what the function should do, it's not important whether you write the Quickcheck property before the function or the other way round - you can't run the tests before both are written anyway :) Of course, if you write the tests first, you don't risk omitting them. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe