Static unittests?
monarch_dodra
monarchdodra at gmail.com
Sun Aug 18 09:34:37 PDT 2013
On Sunday, 18 August 2013 at 16:15:30 UTC, Borislav Kosharov
wrote:
> On Saturday, 17 August 2013 at 17:48:04 UTC, Andrej Mitrovic
> wrote:
>> On 8/17/13, Borislav Kosharov <boby_dsm at abv.bg> wrote:
>>> I really think that this should be added to the language,
>>> because
>>> it doesn't break stuff and it is useful. And the 'static'
>>> keyword
>>> is already used in many places like module imports and ifs.
>>
>> Have you tried using the new getUnitTests trait in the git-head
>> version? If not it will be in the 2.064 release.
>>
>> Btw such a 'static unittest' feature is certainly going to
>> break code
>> because static can be applied as a label, for example:
>>
>> class C
>> {
>> static:
>> void foo() { }
>>
>> unittest { /* Test the foo method. */ } // suddenly
>> evaluated at
>> compile-time
>> }
>
> Oh I really haven't tough about that. Maybe, I will try this
> new trait. Or another solution is to add a compiler switch that
> will try to execute all the tests during compilation or
> something.
Well, that assumes all your code is ctfe-able...
I've taken to doing something along the line of:
unittest
{
void dg()
{
BODY OF UNITTEST
}
dg(); //test runtime
assertCTFEable!dg; //test compiletime
}
It's a quick and easy way of testing both code paths, with
minimal duplication and hassle.
More information about the Digitalmars-d
mailing list