Dan*_*nov 8 .net xml resharper unit-testing
是否可以SelectNodes()调用a XmlDocument返回null?
我的困境是我试图达到100%的单元测试代码覆盖率; ReSharper告诉我,我需要防止该SelectNodes()方法的null返回,但我看不出XmlDocument可以返回null(因此,无法测试我的guard子句并达到100%的单元测试覆盖率!)
Jes*_*cer 10
查看Reflector,XmlDocument的基类XmlNode上的SelectNodes()方法如果尝试创建导航器返回null,则返回null.CreateNavigator()非常复杂,在某些情况下确实会返回null.这些情况似乎是一个格式错误的XML文档 - 所以你的测试用例是SelectNodes()的失败.
代码覆盖率有必要达到100%吗?事实上,在正常(即可控、可测试)情况下这是否可能?
我们经常发现,使用像using {}块这样的“语法糖”结构,会创建一些“隐藏”代码路径(很可能finally {}是catch {}块),除非某些环境条件(例如损坏的套接字或损坏的磁盘)进入系统,否则无法执行这些路径。方式。