digitalmars.D.learn - Question about unittests
- mfeathers (3/3) Jan 10 2007 I was looking at the spec and it mentions that "unittest" is a special
- Alexander Panek (8/14) Jan 10 2007 Unittests are actually not methods inside classes, but more statement
- mfeathers (10/27) Jan 10 2007 Thanks. Another quick question. Is "assert" legal syntax outside of
- Lars Ivar Igesund (7/18) Jan 10 2007 assert(0 == 1);, but otherwise yes.
- Ary Manzana (4/15) Jan 10 2007 Yes. Asserts are always evaluated if you provided -debug to the
- BCS (3/18) Jan 10 2007 asserts are active unless you give the -release flag, even without the -...
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ó:asserts are active unless you give the -release flag, even without the -debug flagThanks. 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









Lars Ivar Igesund <larsivar igesund.net> 