我正在尝试实现100%的代码覆盖率。 然而,某种程度上代码覆盖是抱怨一些未涵盖的MoveNext()方法,但是,没有代码路径迭代IEnumerable ......
有关如何涵盖MoveNext方法的任何想法? MoveNext()位于何处?
答案 0 :(得分:2)
老实说,我从尝试为一个中型项目获得并保持100%代码覆盖率的经验来讲,其中代码遵循SOLID原则相当好,您应该忘记尝试达到100 %代码覆盖率。
最佳做法表明,有充分理由,70%覆盖率的系统非常好,80%非常好,90%特殊。这听起来像是你在九十年代的高潮,所以你感到骄傲,而不是过分担心最后一块,它的声音甚至不能测试你的代码库本身。或者用另一种方式,你宁愿打100%圣杯,还是花时间重构代码,以便日后维护更轻松?
当我尝试保持100%的覆盖率时,我是C#的新手并且最终编写了单元测试以测试.Net框架的getter和setter - 我认为我非常聪明地达到了100%(一周的所有时间)直到团队中的某些人添加了几行极其简洁的代码)然后有人礼貌地指出了我的一些测试的愚蠢 - 我感觉真是个傻瓜。
我意识到我的回答"实际上并没有回答你的问题,我开始将这个回复作为评论,而不是答案,但在我写作时,我意识到我的评论是如此相关,即使没有直接回答这个问题,仅仅是评论是一个不充分的解释。我真的很佩服任何100%覆盖率的尝试,但不要挂断实现它 - "完成比完美更好"。
祝你好运!
答案 1 :(得分:0)
对我有用的是在我的解决方案的 .runsettings 文件中排除 MoveNext() 方法:
<Functions>
<Exclude>
<Function>.*MoveNext.*</Function>
</Exclude>
</Functions>