On Jun 5, 2012, at 1:01 PM, David Janke wrote: > I just finished reading the blog post about the pre-release submodules > feature, and I'm curious what you all think about the new "test" submodule > that allows inline unit tests... > > "The new raco test shell command runs the test submodule of a given module, > so that raco test fish2.rkt checks that all the values of the fish list are > numbers. The test submodule imports rackunit for its check form, but that > import does not create a dependency on rackunit (which is a substantial > library) for modules that import "fish2.rkt"; the dependency is only for the > test submodule." > (http://blog.racket-lang.org/2012/06/submodules.html) > > At first glance, the test submodule sounds like a cool idea, because your > tests can help document your functions. But, I can also imagine files where > the number of tests outnumber the lines of actual code. Plus, there's > something to be said for keeping different parts of an application > separate--tests vs. "work" > > On the other hand, unless you explicitly run the tests, they are effectively > just comments, so no real harm in having them interspersed with the rest of > the code, right? > > I'm fairly new to Racket and just wondering what the thinking is in the > community. Inline unit tests pop up here and there in other languages (Python > has doctest), but it's not really widespread. Seeing how it's going to be > part of the Racket core, maybe it's a technique I should start using?
My opinion: It's very convenient to be able to place unit tests next to the functions that they test while developing code. I agree that you may want to refactor later, and gather the tests together. Submodules (and more specifically module+) allow both of these. John
smime.p7s
Description: S/MIME cryptographic signature
____________________ Racket Users list: http://lists.racket-lang.org/users