gpt4 book ai didi

c# - NUnit:在断言中使用对象之前,我是否应该检查它们是否为空?

转载 作者:行者123 更新时间:2023-12-04 10:12:49 24 4
gpt4 key购买 nike

我正在编写一个调用可能返回 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

最佳答案

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

一个 NullReferenceException是你错过了什么的标志。在测试属性之前断言结果不为空不会遗漏某些东西。

关于c# - NUnit:在断言中使用对象之前,我是否应该检查它们是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61239230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com