You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用NUnit测试异常处理的正确性?附待测试代码

用NUnit验证NullReferenceException是否被正确处理

嘿,要确认你的SampleMethod里的NullReferenceException捕获逻辑是否生效,用NUnit有两种很实用的方式,我给你拆解一下:

方法一:直接验证方法不抛出异常

这是最直接的思路——当你给SampleMethod传入null的时候,它应该能正常跑完,不会把异常抛出来。NUnit里的Assert.DoesNotThrow正好能做这件事:

[Test]
public void SampleMethod_WhenFooBarObjectIsNull_DoesNotThrowNullReferenceException()
{
    // 准备:实例化包含SampleMethod的类(替换成你实际的类名)
    var targetClass = new YourActualClassName();

    // 执行+断言:调用方法,确认没有异常抛出
    Assert.DoesNotThrow(() => targetClass.SampleMethod(null));
}

这个测试的逻辑很直白:如果传入null后方法没崩,就说明你的catch块确实把NullReferenceException给接住了,测试就会通过。

方法二:更细粒度的验证(可选)

如果你不光想确认方法不抛异常,还想确保确实是因为捕获了NullReferenceException才没崩(而不是因为根本没触发异常),可以做个额外的验证。不过大多数情况下第一种方法已经足够覆盖需求了。

比如你可以先单独确认:当fooBarObject为null时,访问它的Name属性一定会触发NullReferenceException——写个小测试验证这一点,再结合第一种方法,就能完全确认你的异常处理逻辑是生效的。

小提示

  • 记得把代码里的YourActualClassName替换成你实际包含SampleMethod的类的名称。
  • 如果SampleMethod是静态方法,那不用实例化类,直接调用静态方法就行。

内容的提问来源于stack exchange,提问作者Beta-Logics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:45:58