oop-TDD:为什么每个功能只有一个测试?

前端之家收集整理的这篇文章主要介绍了oop-TDD:为什么每个功能只有一个测试?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我很难理解为什么我在大多数专业的TDD代码中只看到一个功能测试.当我接近TDD时,我倾向于对每个功能进行4-5个测试,如果它们是相关的,但是我看起来似乎不是标准.我知道每个函数只需一个测试就更具描述性,因为您可以更容易地缩小问题的范围,但是我发现自己很难想出功能名称来区分不同的测试,因为许多测试类似.

所以我的问题是:将多个测试放在一个函数中真的是一个糟糕的做法,如果是,为什么?那里有一个共识吗?谢谢

编辑:哇吨很棒的答案.我相信你需要真正把它们全部分开.我经历了一些最近的测试,我已经写过,并分离了他们,并且看起来更容易阅读,帮助我更好地了解我正在测试的内容.还通过给测试自己长的冗长的名字,它给了我一些想法,如“哦,等等,我没有测试这个其他的东西”,所以我认为这是去的方式.

好答案很难选择胜利者

看起来你在问“为什么每个测试中只有一个断言,在我看到的大多数专业TDD代码中”.这可能是为了增加测试隔离,以及在出现故障时测试覆盖.这当然是为什么我这样做了我的TDD库(对于 PHP)的原因.说你有
function testFoo()
{
    $this->assertEquals(1,foo(10));
    $this->assertEquals(2,foo(20));
    $this->assertEquals(3,foo(30));
}

如果第一个断言失败,你不会看到其他两个会发生什么.这不完全有助于确定问题:这是对输入的具体内容,还是系统性的?

猜你在找的设计模式相关文章