Unittests and assert

H. S. Teoh hsteoh at quickfur.ath.cx
Wed Feb 27 20:50:02 PST 2013


I just had a sinking realization today: I have been using assert inside
unittests to check for test results, but actually, this is wrong!

Why? Because when you compile with -release -unittest, all those asserts
disappear, and the unittests become useless.  The correct way is to use
enforce instead of assert.

Unfortunately, Phobos unittests are full of asserts rather than enforce.
:-/

(And I contend that compiling with both -release and -unittest is a
valid scenario: it lets you catch bugs that only show up in the release
version, such as accidentally relying on side-effects in asserts, which
work when compiling without -release, but mysteriously fail during
-release. Failing unittests would allow you to catch such mistakes
before you ship it to the irate customer.)


T

-- 
Computerese Irregular Verb Conjugation: I have preferences.  You have
biases.  He/She has prejudices. -- Gene Wirchenko


More information about the Digitalmars-d mailing list