【发布时间】:2015-11-18 14:31:16
【问题描述】:
使用 QUnit,我可以 explicitly expect 在我的测试中运行特定数量的断言(哎呀,默认情况下无论如何都需要至少 1 个断言,否则测试失败)。
有没有办法用 NUnit 做类似的事情? (哎呀,默认情况下没有断言的测试甚至可以通过......)。
为了澄清,这里有一个例子/repro。假设我正在测试这段代码:
public class Util
{
public static void MyMethod(Action someAction)
{
// We're TDD'ing, and we are *just about* to write:
//someAction();
}
}
然后在我写someAction(); 电话之前,我想写一个测试。这是我想要编写的测试:
[Test]
public void MyMethod_WhenGivenAction_ShouldCallAction()
{
Assert.Expect(1); // Pseudo code, but this doesn't work.
Util.MyMethod(() => Assert.That(true));
}
当然我可以解决这个问题:
[Test]
public void MyMethod_WhenGivenAction_ShouldCallAction()
{
bool wasCalled = false;
Util.MyMethod(() => wasCalled = true);
Assert.That(wasCalled);
}
我想我什至可以在Assert 上编写自己的扩展方法来在一行中执行此操作,但我想知道是否有一种惯用的/内置方式来“预期N 个断言”与NUnit?
【问题讨论】:
-
附言。我有cross-posted something similar to the news group(TLDR 版本是坚持我已经提到的“解决方法”)。
标签: c# unit-testing nunit