On Sat, 14 Aug 2010 23:49:18 -0400, Jonathan M Davis
<jmdavisp...@gmail.com> wrote:
Is there a standard and/or acceptable way to make sure that
pre-conditions,
post-conditions, or invariants _fail_ when running unit tests? That is,
lets say
I had a function like this
void func(int x)
in
{
assert(x < 8);
}
body
{
//...
}
and I wanted to test to make sure that func() couldn't be called with
any int
greater or equal to 8, what would I do?
Hm... unit testing your unit tests :)
input contracts and unit tests are supposed to be simple, provable code so
you don't have to test them. The above function is obviously a simple
example, you don't really need to unit test it (right?), so what would a
complicated in contract look like?
It's also a good idea to avoid complex expressions in unit tests. If you
have a complex expression, split it out into several lines to avoid having
to work through the logic in your head. Performance/minimal LOC is not a
goal you need in unit tests/contracts.
-Steve