dunit 0.7.0 released

ilya-stromberg ilya-stromberg-2009 at yandex.ru
Mon Oct 21 12:47:22 PDT 2013


On Monday, 21 October 2013 at 19:02:45 UTC, Gary Willoughby wrote:
> On Monday, 21 October 2013 at 11:58:14 UTC, Jonathan M Davis 
> wrote:
>> On Monday, October 21, 2013 13:48:16 Dicebot wrote:
>>> On Monday, 21 October 2013 at 11:09:25 UTC, ilya-stromberg 
>>> wrote:
>>> > Guys, we have at least 5 (!) different unit test projects!
>>> > Can you cooperate your efforts to create one, but wonderful?
>>> 
>>> ...and add it to Phobos review queue ;)
>>
>> I confess that I don't understand why anyone is creating any 
>> unit test
>> projects for D, and I'd likely vote against any attempt to add 
>> such a thing to
>> Phobos. D has built in unit testing functionality, and it 
>> works great. Maybe
>> some additional assert-like functions could be useful (similar 
>> to assertThrown
>> or assertNotThrown), but we really don't need much beyond what 
>> the language
>> provides.
>>
>> - Jonathan m Davis
>
> Seriously though, unit testing is a major tool that all 
> languages should have access to. The built-in stuff is adequate 
> for very simple testing on simple types such as asserting 
> something is true, etc. But when you're writing tests for a 
> class that need dependencies then the built-in stuff won't cut 
> it. The framework i'm currently working allows for mocking of 
> dependencies which in itself is a big deal. Replacing 
> dependencies with 'fake' stubs is something which makes unit 
> tests a lot clearer and less complicated. It also means i can 
> override the return value of any method at runtime to pretend 
> returned data is real there too.
>
> I've also extended the assert mechanism in the D runtime to 
> create better errors. Instead of just getting:
>
>     core.exception.AssertError at file(57): Assertion failure
>
> You now get:
>
>     
> +----------------------------------------------------------------------
>     | Failed asserting equal
>     
> +----------------------------------------------------------------------
>     | File: file.d
>     | Line: 57
>     
> +----------------------------------------------------------------------
>     | ✓ Expected value: (int[]) [1, 2, 3, 4, 5]
>     | ✗ Actual value: (int[]) [1, 2, 4, 5]
>
> This is way more clear exactly what and where failed. This is 
> essential when unit testing using structs, arrays, classes, 
> etc.. as you need this information to truly narrow down exactly 
> what failed. Extending stuff like this also helps with overall 
> project reporting, writing to a file or drawing pretty graphs 
> etc..

+1


More information about the Digitalmars-d-announce mailing list