Helper unit testing functions in Phobos (possible std.unittests)

Tomek Sowiński just at ask.me
Sat Nov 6 14:11:34 PDT 2010


Jonathan M Davis napisał:

> I'm proposing a possible new module for phobos which would be called
> std.unittests. The code and DDoc file can be found here:
> http://is.gd/gLH9Q
> 
> Or you can look at the code here directly (though it has poor
> highlighting): http://ideone.com/EOlod
> 
> The module contains a set of helper functions for unit tests which are an
> improvement over simply using assert. I have them to be very helpful in
> the unit tests in my proposal for std.datetime. My unit tests are more
> concise, easier to read, and much easier to debug because of them.
> assertEqual() and assertExcThrown() have been particularly useful.

If the language can't help, helpers are definitely of value. In Java I rarely use the built-in assert statement and resort to JUnit 
functions where possible.

> assert is a great tool, but simply telling you that an assertion failed is
> not as useful as telling you _how_ it failed, and a function like
> assertExcThrown() (which, as you may guess, asserts that a particular
> exception was thrown by a particular function call) really reduces the
> boiler plate code that you have to write for testing what it tests. So, I
> find such helper functions are extremely useful.

>From a different angle: if assert is already part of the language, and the compiler has access to the AST of the tested 
expression, perhaps it could also automatically generate code that pretty-prints the expression?

-- 
Tomek


More information about the Digitalmars-d mailing list