PHPUnit Mocked类方法未在代码覆盖率报告中显示?

时间:2018-01-16 10:44:45

标签: mocking phpunit code-coverage php-code-coverage

我正在使用magento2中的php项目。我正在使用模拟对象来编写单元测试用例。我开始知道,当我生成代码覆盖率报告时,模拟类和方法没有显示在代码覆盖率报告中,我们有什么办法可以显示这些吗?

我查看官方回购,并将其作为默认行为提及。

参考: https://github.com/sebastianbergmann/phpunit-mock-objects/issues/123

非常感谢任何帮助!

由于

1 个答案:

答案 0 :(得分:4)

模拟方法没有显示为覆盖,因为它们的代码没有执行(它们是存根的,只返回了预定义的值,而且原始代码从未被调用过)。

你可以做的事情很少:

  • 如果Magento 2有自己的测试,请执行它们。这样,magento测试的覆盖范围将被添加到您的。
  • 上述观点实际上并没有多大意义,因此最好忽略代码覆盖率报告中的magento路径。
  • 添加实际上通过Magento代码的集成测试。这是您唯一真正的考验。当您模拟magento方法时,您只需验证您的代码是否正确调用了方法,或者它是否正确地使用了预期的返回值。您永远不会验证该方法调用是否实际上符合您的期望