On 13/07/2014 2:35 p.m., dysmondad wrote:
.....
try:
unittest {
Velocity v = new Velocity( 2.0f, 5.0f );
v *= 5.0f; // <- line 110
printf( "v = %s\n", to!string(v) );
}
instead. Basically version is like static if, it doesn't indicate its
a function. Instead it changes what code gets compiled.
Where as a unittest block, is essentially just a function that gets
called at a special time, that is only compiled as if
version(unittest) was also used.
Thank you very much. That was quite helpful.
So, what is the generally accepted way include unit testing? TDD is all
the rage these days and I though I would try my hand at it as well as D.
Basically, have a function that does something like string manipulation
or complex math? Use a unittest block for it. Which you can do before
you write the function. It may not compile however.
Also do note, assert's are part of the language. And will cause an
exception to throw should the expression return false.
assert(exp, "description");
Description is optional however.
Here's an example
https://github.com/rikkimax/skeleton/blob/master/source/skeleton/syntax/download_mkdir.d#L175
Of course there will be better ones, just something I was doing last
night however.