[phobos] Split std.datetime in two?
Andrei Alexandrescu
andrei at erdani.com
Fri Feb 11 09:02:09 PST 2011
Again, in principle this is violent agreement. Many unittests?
Love'em. Simple unittests? Keep'em that way. But when I look at
std.datetime, I can clearly see that these good principles can be
taken to scales that just are out of proportion.
Btw to be clear: I consider code organized around loops comparing
inputs with expected outputs simpler. For one thing I can see more of
it, and it's obvious that only one function is tested. Then it's
easier to maintain too. I consider the long copied invocations with
one parameter varying indefensible in any circumstance, and I feel a
mix of desperation and resignation that I need to debate this.
Sent by shouting through my showerhead.
On Feb 11, 2011, at 11:32 AM, Jonathan M Davis <jmdavisProg at gmx.com>
wrote:
> On Friday 11 February 2011 02:24:08 spir wrote:
>> On 02/11/2011 10:18 AM, Jonathan M Davis wrote:
>>> However, I do acknoweldge that most people here disagree with me and
>>> think that the length of the unit tests in std.datetime is
>>> excessive and
>>> problematic. So, I will take time sometime relatively soon and
>>> work on
>>> making them take less space. And any future anything that I
>>> propose to
>>> Phobos, I will work on minimizing the amount of space that its unit
>>> tests take up before I propose it.
>>
>> Why not just do this as a final refactoring of each unitest, once
>> all runs
>> fine? (At least, if your tests are commonly suites of the same
>> pattern
>> with various input (mine are rarely like that, rather simulating
>> client
>> process using tested functinality), then use case arrays, I guess.)
>
> Well, that's essentially what I'll be doing in the case of
> std.datetime, since
> it's already been written, tested, and debugged with the tests as
> they are. It's
> probably what I'll do with future code as well.
>
> I really do think that unit tests should strive to be dead simple so
> that
> there's a lower risk of the tests being wrong. Once the
> functionality is
> complete, and you're reasonably certain that it's correct, then when
> you alter
> the tests to be less verbose, you at least have the confidence that
> when the
> tests fail, it's the tests that are wrong rather than the code. If
> the code is
> new however, that's a lot less clear. And the more complicated the
> tests, the
> more likely that they're wrong and the more likely that you'll miss
> bugs.
>
> - Jonathan m Davis
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
More information about the phobos
mailing list