std.unittests [updated] for review
Jonathan M Davis
jmdavisProg at gmx.com
Tue Feb 1 08:09:00 PST 2011
On Tuesday 01 February 2011 07:21:54 Don wrote:
> Jonathan M Davis wrote:
> > On Sunday 30 January 2011 05:28:36 SHOO wrote:
> >> To be frank, I don't think that such a helper is necessary.
> >> I think these helpers will harm intuitive readability of unittest code.
> >> For unittest code, it is necessary to be able to understand easily even
> >> if without the document.
> >
> > Do you really find
> >
> > assertPred!"=="(min(5, 7), 5);
> >
> > to be all that harder to understand than
> >
> > assert(min(5, 7) == 5);
>
> I do. *Much* harder. Factor of two, at least.
> In absolute terms, not so much, because it was the original assert is
> very easy to understand. But the relative factor matters enormously.
> Much as comparing:
> a.add(b);
> a += b;
>
> And I think this is a very important issue.
Well, it's quite common for unit testing frameworks to have stuff like
assertEqual, assertNotEqual, assertLessThan, etc. assertPred!"==" isn't all that
different, except it embeds the actual operator in it via a template argument, so
if anything, it's arguably easier to read than those.
And honestly, I think that the added debugging benefit of assertPred far
outweighs any potential readability issues. assert as it stands is quite poor in
comparison.
> >I don't see how these functions could be anything but an improvement.
> >
> > But even if they get into Phobos, you obviously don't have to use them.
>
> This is not true. Including them in Phobos gives a legitimacy to that
> style of programming. It's a role model.
>
> Including stuff like this could give D a reputation for lack of
> readability. My belief is that right now, the #1 risk for Phobos is that
> it becomes too clever and inaccessible.
>
> IMHO, something simple which has any appearance of being complicated,
> needs a VERY strong justification.
Valid point. However, I do think that the added usefulness of assertPred far
outweighs any readability issues, but honestly, I don't think that it's all that
hard to read - especially when it's very typical for unit testing frameworks to
have function such as assertEqual and assertGreaterThan.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list