【问题标题】:Uncle Bob's TDD RulesBob 大叔的 TDD 规则
【发布时间】:2014-02-25 15:10:23
【问题描述】:

UncleBobsThreeTDDRules

  1. 您不得编写任何生产代码,除非是为了通过失败的单元测试。
  2. 不允许您编写任何足以导致失败的单元测试;编译失败就是失败。
  3. 您编写的生产代码不得超过足以通过一个失败的单元测试的数量。

谁能告诉我 1 和 3 的区别?对我来说不是很清楚。

对我来说,1 和 3 可以结合使用,还是这些规则也暗示了顺序?

【问题讨论】:

    标签: tdd


    【解决方案1】:

    首先:我对这些规则持保留态度。

    也就是说,规则一和规则三的概念略有不同:

    规则 1:你不应该在没有失败测试的情况下编写任何代码。

    规则 3:您不应该实现一个完整的算法(即使它会使测试通过),而应该只实现最简单(有些人可能会说幼稚)的解决方案来使测试通过。

    一个例子:

    假设您想要一个接受数字并返回相同数字的方法。假设您有以下测试:

    public void Entering1Returns1() {
        assert.That(calculate(1) == 1);
    }
    

    此实现将符合这两个规则:

    public void calculate(int input) {
        return 1;
    }
    

    这会违反规则 3(严格来说),因为它做的比需要的多:

    public void calculate(int input) {
        return input;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-04
      • 2022-04-26
      • 2016-05-14
      • 2012-04-21
      • 2020-08-24
      • 2023-03-05
      • 2018-04-03
      • 2016-02-21
      相关资源
      最近更新 更多