加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 20:11:04 所属栏目:百科 来源:网络整理
导读:我很难理解为什么我在大多数专业的TDD代码中只看到一个功能测试.当我接近TDD时,我倾向于对每个功能进行4-5个测试,如果它们是相关的,但是我看起来似乎不是标准.我知道每个函数只需一个测试就更具描述性,因为您可以更容易地缩小问题的范围,但是我发现自己很难
我很难理解为什么我在大多数专业的TDD代码中只看到一个功能测试.当我接近TDD时,我倾向于对每个功能进行4-5个测试,如果它们是相关的,但是我看起来似乎不是标准.我知道每个函数只需一个测试就更具描述性,因为您可以更容易地缩小问题的范围,但是我发现自己很难想出功能名称来区分不同的测试,因为许多测试类似.

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

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

好答案很难选择胜利者

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读