我不想完全禁用警告,仅当它在Assert语句中时才可以。

因此,例如,如果我有以下两行

var someObject = GetObject();
Assert.IsNotNull(someObject, "someObject should not be null");
Assert.AreEqual(expectedValue, someObject.SomeProperty);

我将在someObject.SomeProperty的第二行上收到可能的null引用警告。是否可以在某个调用内(例如Assert.AreEqual)禁用警告?

由于这是许多单元测试的问题,所以我不想用ReSharper禁用代码来乱丢测试。

现在,我唯一想到的选择是将每个Assert.IsNotNull调用更改为
var someObject = GetObject();
if(someObject == null)
{
  Assert.Fail("someObject is null");
  return;
}

尽管这种方法似乎打败了首先拥有Assert.IsNotNull的目的。只是想知道是否有更好的方法。

最佳答案

我不知道您使用的特定库,但我会尝试类似的方法

Assert.IsTrue(someObject != null);

或者,为了完整起见,
Assert.IsNotNull(someObject, "someObject must not be null");
Assert.IsNotNull(someObject.SomeProperty, "SomeProperty must not be null either");
Assert.SomethingElse(...);

关于c# - 使用Assert语句时,是否有任何方法可以忽略可能的Null引用异常警告?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9841855/

10-16 05:58