【问题标题】:Is it OK for a subsequent TDD test to make an earlier test obsolete后续的 TDD 测试是否可以使早期的测试过时
【发布时间】:2013-12-10 02:41:56
【问题描述】:

我是 TDD 新手。

一个通用的例子:

  • 步骤 1. 创建一个失败的测试用例 -> 测试用例 1
  • 第 2 步。通过编辑代码(填充数据的 for 循环)修复失败的测试用例
  • 第 3 步。测试用例 1 现在是绿色的
  • 步骤 4. 创建另一个失败的测试用例 -> 测试用例 2(在 for 循环中,现在有 if 语句)
  • 步骤 5. 再次修复失败的测试用例
  • 第 6 步。测试用例 2 现在是绿色的

我的测试用例 1 已过时,因为它只检查 for 循环是否有效。 它将变为红色,因为我将断言等于预期数据,但由于它不会通过 if 条件(在测试用例 1 中我没有正确设置),因此预期数据将不可用。

请解释一下。我确定我做错了什么。

谢谢。

【问题讨论】:

    标签: unit-testing testing tdd


    【解决方案1】:

    您的测试用例不需要知道您将如何实现它。例如,您不测试是否有循环,而是测试数据是否已填充。

    此外,测试用例不需要只编写一次,在许多情况下,您需要编辑以前的测试用例,因为您实现了使旧测试用例无效的功能的新方面。

    在您的特定情况下,您可以编写第一个测试用例以避免触发 if 条件,并让第二个测试用例偶尔触发 if 条件。或者,您可以编辑第一个测试用例,而不是创建第二个测试用例,以便它同时测试 for 循环和 if 条件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-18
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 2022-07-25
      • 1970-01-01
      • 2013-07-27
      • 2013-09-13
      相关资源
      最近更新 更多