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