digitalmars.D.learn - Question about unittests
- mfeathers <mfeathers objectmentor.com> Jan 10 2007
- Alexander Panek <a.panek brainsware.org> Jan 10 2007
- mfeathers <mfeathers objectmentor.com> Jan 10 2007
- Lars Ivar Igesund <larsivar igesund.net> Jan 10 2007
- Ary Manzana <ary esperanto.org.ar> Jan 10 2007
- BCS <ao pathlink.com> Jan 10 2007
I was looking at the spec and it mentions that "unittest" is a special method in classes. Can you have more than one unittest method in a class?
Jan 10 2007
mfeathers wrote:I was looking at the spec and it mentions that "unittest" is a special method in classes. Can you have more than one unittest method in a class?
Unittests are actually not methods inside classes, but more statement blocks that are executed when you compile & execute unittests. So, they work as if you provide a void main () {} in every file/class/whatever scope you put them in. And yes, IIRC, you can have multiple unittest blocks per file, too. Though, they are all executed then. You could workaround that with version() { } blocks.
Jan 10 2007
Thanks. Another quick question. Is "assert" legal syntax outside of
contacts and unit tests? For instance, can I do this:
unittest {
someMethod();
}
void someMethod() {
assert 0 == 1
}
Michael Feathers
Alexander Panek wrote:
mfeathers wrote:
I was looking at the spec and it mentions that "unittest" is a special
method in classes.
Can you have more than one unittest method in a class?
Unittests are actually not methods inside classes, but more statement
blocks that are executed when you compile & execute unittests. So, they
work as if you provide a void main () {} in every file/class/whatever
scope you put them in.
And yes, IIRC, you can have multiple unittest blocks per file, too.
Though, they are all executed then. You could workaround that with
version() { } blocks.
Jan 10 2007
mfeathers wrote:Thanks. Another quick question. Is "assert" legal syntax outside of contacts and unit tests? For instance, can I do this: unittest { someMethod(); } void someMethod() { assert 0 == 1 }
assert(0 == 1);, but otherwise yes. -- Lars Ivar Igesund blog at http://larsivi.net DSource & #D: larsivi Dancing the Tango
Jan 10 2007
mfeathers escribió:Thanks. Another quick question. Is "assert" legal syntax outside of contacts and unit tests? For instance, can I do this: unittest { someMethod(); } void someMethod() { assert 0 == 1 }
Yes. Asserts are always evaluated if you provided -debug to the compiler. Of course for asserts in unittests to work you also have to provider -unittest to the compiler.
Jan 10 2007
Reply to Ary,mfeathers escribió:Thanks. Another quick question. Is "assert" legal syntax outside of contacts and unit tests? For instance, can I do this: unittest { someMethod(); } void someMethod() { assert 0 == 1 }
compiler. Of course for asserts in unittests to work you also have to provider -unittest to the compiler.
asserts are active unless you give the -release flag, even without the -debug flag
Jan 10 2007









Lars Ivar Igesund <larsivar igesund.net> 