4

我正在使用 NUnit/Watin 测试我的 ASP.Net Web Forms 应用程序的 UI。我了解有关 TDD、单元测试、集成测试等的高级概念,但直到现在还没有太多机会使用它们。

因此,当我在数据输入表单上测试验证逻辑时,我应该编写一个测试来触发我的每个验证错误(即字段 x 是必需的),还是针对应该抛出的每个验证错误单独测试通过表格。这仅仅是一个样式问题,还是有正当理由编写多个测试而不是一个针对我的验证逻辑的所有可能组合的测试?

伪代码:

    [Test]
    public void Validation()
    {
       //Do some stuff to test that username is required.
       Assert.AreEqual(true, ie.ContainsText("Username is required.");

       //Do some stuff to test that passwword is required.
       Assert.AreEqual(true, ie.ContainsText("Password is required.");
    }

对比

[Test]
public void ValidateUserName()
{
   //Do some stuff to test that username is required.
   Assert.AreEqual(true, ie.ContainsText("Username is required.");
}

[Test]
public void ValidatePassword()
{
   //Do some stuff to test that passwword is required.
   Assert.AreEqual(true, ie.ContainsText("Password is required.");
}
4

1 回答 1

7

我倾向于每次验证进行一项测试:

  • 如果你完全破坏了验证,两个测试会失败,所以你会立即知道你破坏的一切。如果他们在同一个测试中,那么第一个失败将掩盖第二个,直到第一个被修复。

  • 一旦你破坏了任何东西,你就会得到一个关于失败方法名称中的确切内容的描述。许多单元测试 GUI 会在每个失败的测试旁边给你一个小红灯,这些会自然地突出和描述你所有的错误。

话虽如此,重要的是您要进行测试-在课程中出现的特定测试是次要的细节...

于 2008-12-16T22:12:09.983 回答