当Assert语句处于不同方法中时,使用NUnit Multiple Assert

时间:2019-04-24 15:35:18

标签: c# testing automation nunit assert

我正在为每个步骤使用NUnit断言(即Then And用于UI测试)来运行自动化BDD步骤。

NUnit断言仅限于每种方法。这意味着,如果方法中的断言失败,则其他步骤将不会运行。

我当时在考虑使用NUnit Multiple Assert,但这要求所有断言都在一起。有什么想法吗?

BDD Steps

Then I am shown results for("foo")
And the page count is(3)

我正在使用LightBDDhttps://github.com/LightBDD/LightBDD

// Then Step
private void ThenIAmShownResultsFor(string expectedResults)
{
    Assert.AreEqual(expectedResults, actual);
}

// And Step
private void AndThePageCountIs(int expectedResults)
{
    Assert.AreEqual(expectedResults, actual);
}

1 个答案:

答案 0 :(得分:0)

请参见this article。您依赖于另一个结果的测试应该模拟那些其他测试或方法。每个测试应完全与其他任何测试分离。您应该永远,永远,永远根据另一个测试的结果进行测试。如果一个测试依赖于另一个测试的结果,则需要模拟另一个测试的响应。

假设_foo

的代码
// And Step
private void AndThePageCountIs(int expectedResults)
{
   actual = _foo.Setup(x => x.ThenIAmShownResultsFor()).Returns(expectedResults);
   Assert.AreEqual(expectedResults, actual);
}