我正在为每个步骤使用 NUnit
断言运行自动化 BDD 步骤,即 Then
And
我的 UI 测试。
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);
}
关于c# - 当 Assert 语句在不同的方法中时使用 NUnit Multiple Assert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55833793/