TDD - 一次一个测试或批量生产?

Fin*_*las 6 tdd unit-testing

对于单元测试,你应该;

写一个测试.编写代码来传递它.重构.

要么

写下所有已知的测试.一次通过.重构.

我问这个是因为TDD声明你在所有测试通过后都停止编写代码,但这一点还不清楚.

编辑

我认为TDD更关注这个"规则"的一件事是与故事/任务有关吗?有人同意吗?

几个月后

我在看到关于该主题的截屏视频(我将尝试找到该链接)后进入的例程如下.

  • 在测试类的顶部写下测试/行为/功能的名称.
  • 剪切并粘贴测试名称.
  • 完成测试.
  • 重复,直到列表为空.

但是,使用C#的示例应该是通用的.

// Login page should not allow blank password    // This would be removed when cut/pasted.
// Login page should not allow blank username
...

[TestFixture]
class LoginPageTests {

    [Test]
    public login_page_should_not_allow_blank_password() {
        // Test code...
    }
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ton 11

  • 编写足够的测试以使测试失败,通常这是因为您的代码无法编译
  • 编写足够的代码以使测试通过
  • 重复

这些是TDD的规则.这意味着您只需要一次编写一个单元测试和一个代码,然后迭代地执行此操作.

TDD的重点不在于编写测试,它正在使用您的测试来驱逐设计.我们的想法是,一旦您的所有测试都通过并且它们涵盖了您知道代码也完整的所有功能.没有测试,你怎么知道你什么时候完成.所以,当你觉得你已经测试过所有东西时,请停下来.