Why can't we put import in functions.
Bruce Adams
tortoise_74 at yeah.who.co.yk
Tue Oct 16 11:06:58 PDT 2007
Henning Hasemann Wrote:
>
> I came to (nearly) entirely drop unittests and instead make "module
> tests" where I compile each module into a binary and run it.
>
> It goes like this:
>
> module foo;
> import bar;
>
> // Class defitions etc...
>
> version(module_test_foo) {
> import test_dep;
> void main() {
> // test code
> }
> }
>
> I know it isnt particular prettier either, especially as you have to be
> careful about reusing your object files and have a lot of extra
> compiling to do for the tests. But on the other hand the modules
> included can "see" which module is beeing tested and file some special
> cases for it to test or whatever.
>
> I also use an additional -version=module_test which in some places is
> needed (in my code) to skip some initialization functions that
> otherwisely might "bite" with the main.
>
> Also note that this is for library code where there would be no main()
> at all, so it wouldnt be testable without having an extra main.
>
> Henning
>
> --
> GPG Public Key:
> http://gpg-keyserver.de/pks/lookup?op=get&search=0xDDD6D36D41911851
I tend to follow a cppunit like model. For every class I create a test class which has a main. This gets all your unittest stuff into a separate file from the implementation so it doens't get too big.
Regards,
Bruce.
More information about the Digitalmars-d
mailing list