【发布时间】:2012-03-23 15:22:27
【问题描述】:
我不想完全禁用警告,只是在 Assert 语句中。
例如,如果我有以下两行
var someObject = GetObject();
Assert.IsNotNull(someObject, "someObject should not be null");
Assert.AreEqual(expectedValue, someObject.SomeProperty);
我将在someObject.SomeProperty 的第二行收到可能的空引用警告。是否可以在某个呼叫中禁用警告,例如Assert.AreEqual?
由于这是很多单元测试的问题,我不想在测试中乱扔 ReSharper 禁用代码。
现在我能想到的唯一选择是将每个Assert.IsNotNull 调用更改为
var someObject = GetObject();
if(someObject == null)
{
Assert.Fail("someObject is null");
return;
}
虽然这似乎违背了拥有Assert.IsNotNull 的初衷。只是想知道是否有更好的方法。
【问题讨论】:
-
你能发布一个更完整的例子吗?我无法重现这个;使用 NUnit 的断言库时,添加 Assert.IsNotNull 会删除警告 - 并且它是否在测试中没有效果。
-
@JamesWorld,我正在使用 MBUnit,不确定这是否会有所不同。我发布的代码确实使用 MBUnit 2.4.2 和 ReSharper 6.1 给出了警告。我知道它是否在测试中并不重要,但我只关心在测试类中禁用它。在其他任何地方都应该启用它。
-
是的,我发现了 MBUnit 的使用,这就是我说我使用 NUnit 的原因。我将我的测试切换到 MBUnit,发现它并没有消除警告。问题一定在于它们的实现方式不同。
标签: c# unit-testing mbunit resharper-6.1