【发布时间】:2020-04-15 21:50:16
【问题描述】:
我正在编写一个调用可能返回 null 的方法的测试。在这个特定的测试中,返回的对象必须 not 为 null 并且其上的某些属性必须匹配特定的值。示例:
var obj = thing.GetObject();
Assert.That(obj, Is.Not.Null);
Assert.That(obj.Name, Is.EqualTo("Name"));
这是我在 C++ 中的一个习惯,在使用指针之前,您通常会有一个断言,因为访问 null 会导致单元测试崩溃(并且您希望避免这样做)。然而,在 C# 中,访问空对象是一个正常的异常。做我上面所做的事情是一个好习惯,还是继续访问对象并在对象为空时依靠异常使测试用例失败?如:
var obj = thing.GetObject();
Assert.That(obj.Name, Is.EqualTo("Name")); // Throws if `obj` is null
【问题讨论】:
-
投票结束的人:为什么?