On Wednesday, 25 May 2016 at 22:19:28 UTC, Seb wrote:
I know that writing your own library is fun, but something that I see quite often when looking at e.g.


Yep, I saw a couple of those before I got started on mine. For some of us it's a sense of ownership, I think. It feels good to be building projects on top of code I wrote myself.

mach.error.unit
-> http://code.dlang.org/packages/unit-threaded

Actually, my module isn't a unittest framework - though I intend to take a shot at one of those, too, at some point. Instead it's a substitute for "assert" everywhere that results in more descriptive errors in case of failure.

For example, this is one way to indicate that some group of not-asserts are testing the same general subject:

    tests("Some feature", {
        ...
    });

And when you do something like this -

    testeq("not", "equal");

You get an error message like this -

mach.error.unit.TestFailureError@E:\Dropbox\Projects\d\mach\error\unit.d(215): Values must be equal not and equal

Which you can further customize -

testeq("This is an example and should always fail.", "not", "equal");

Resulting in this -

mach.error.unit.TestFailureError@E:\Dropbox\Projects\d\mach\error\unit.d(215): This is an example and should always fail. not and equal

And you can also do some cool stuff like this -

    fail(
        "Catch a TestFailureError",
        (caught) => (cast(TestFailureError) caught !is null),
        {testeq("not", "equal");}
    );

mach.math.round
-> sounds like a feature that could be useful for everyone. How about making a PR to Phobos?

...

I will do that


Reply via email to