NUnit:在断言中使用对象之前,是否应该检查对象是否为null?

无效指针

我正在编写一个调用可能会返回null的方法的测试。在此特定测试中,返回的对象不能为null,并且其上的某些属性必须与特定值匹配。例:

var obj = thing.GetObject();
Assert.That(obj, Is.Not.Null);
Assert.That(obj.Name, Is.EqualTo("Name"));

这是我的C ++习惯,您通常在使用指针之前先声明一个断言,因为访问null可能会使单元测试崩溃(并且您希望避免这样做)。但是,在C#中,访问空对象是一个正常的例外。如果执行上述操作,或者只是继续访问对象并依靠异常使对象失败(如果对象为null),是一种好习惯吗?如:

var obj = thing.GetObject();
Assert.That(obj.Name, Is.EqualTo("Name")); // Throws if `obj` is null
反射不良

我对此无权,但我认为,如果您断言它不是null而不是让它抛出异常,那么您将获得更有意义和一致的测试结果消息。我在自己的单元测试中这样做,这是值得的。

ANullReferenceException表示您错过了某些东西。在测试属性之前,断言结果不为null并不表示缺少某些东西。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 javaer10[email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章