100% 代码覆盖率,抱怨 MoveNext()

100% code coverage, complaining about MoveNext()

我正在努力实现 100% 的代码覆盖率。 然而,不知何故代码覆盖率抱怨一些未被覆盖的 MoveNext() 方法,但是,没有迭代 IEnumerable 的代码路径...

知道如何覆盖 MoveNext 方法吗? MoveNext() 位于何处?

老实说,我是根据尝试为一个中等规模的项目实现并保持 100% 代码覆盖率的经验说的,其中的代码相当好地遵循 SOLID 原则,你应该忘记尝试实现 100 % 代码覆盖率。

最佳实践表明,70% 覆盖率的系统非常好,80% 非常好,90% 非常好。听起来你已经九十多岁了,所以你很自豪,并不过分担心最后的部分,从它的声音来看,它甚至没有测试你的代码库本身。或者换句话说,您是愿意达到 100% 的圣杯还是花时间重构代码以使将来的维护更容易?

当我尝试保持 100% 的覆盖率时,我是 C# 的新手,最终编写了单元测试来测试 .Net 框架的 getter 和 setter - 我认为我真的很聪明地达到了 100%(整整一个星期,直到有人在团队中添加了几行超简单的代码)然后有人礼貌地指出了我的一些测试的愚蠢 - 我觉得多么愚蠢。

我意识到我的 "answer" 并没有真正回答你的问题,我开始这个回应是作为评论,而不是答案,但在我写的时候我意识到我的评论是如此相关,甚至如果不直接回答问题,仅仅发表评论是不够的。我真的很钦佩任何 100% 覆盖率的尝试,但不要急于实现它 - "done is better than perfect"。

祝你好运!

对我有用的是在我的解决方案中排除 .runsettings 文件中的 MoveNext() 方法:

        <Functions>
          <Exclude>
            <Function>.*MoveNext.*</Function>
          </Exclude>
        </Functions>

this related Stack Overflow post