我正在为每个步骤都使用NUnit
断言来运行自动化的BDD步骤,即,针对UI测试使用Then
And
。NUnit
断言仅限于每种方法。这意味着,如果方法中的断言失败,则其他步骤将不会运行。
我当时在考虑使用NUnit Multiple Assert
,但这要求所有断言都在一起。有任何想法吗?
BDD Steps
Then I am shown results for("foo")
And the page count is(3)
我正在使用
LightBDD
库https://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);
}
最佳答案
请参见this article。您依赖于另一个结果的测试应该模拟那些其他测试或方法。每个测试应与其他任何测试完全脱钩。您永远都不要依赖于另一个测试的结果。如果一个测试依赖于另一个测试的结果,则需要模拟另一个测试的响应。
代码,假设_foo
// And Step
private void AndThePageCountIs(int expectedResults)
{
actual = _foo.Setup(x => x.ThenIAmShownResultsFor()).Returns(expectedResults);
Assert.AreEqual(expectedResults, actual);
}