【发布时间】:2011-03-17 12:07:13
【问题描述】:
我正在玩 Pex 和 Moles,在运行 Pex 后发现 Pex 所说的几乎所有失败的测试都是因为 NullReferenceExceptions 是“允许的”。阅读 Pex 文档,我发现了以下内容:
如果更高级别的组件通过 格式错误的数据到较低级别 组件,其中较低级别 组件拒绝,然后 更高级别的组件应该是 一开始就阻止了这样做 地点。
所以上面的建议是我们应该在调用其他方法/类之前测试空值,使用类似的东西:
if(foo == null)
throw new ArgumentNullException("its null and this shouldn't happen")
else
Bar(foo); //won't get a null reference exception here because we checked first...
恕我直言,全面检查空值对性能和代码膨胀的原因没有太大吸引力,但我想听听其他人怎么说....
【问题讨论】:
标签: c# nullreferenceexception pex