1

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

我查看了官方回购,它被称为默认行为。

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

非常感谢任何帮助!

谢谢

4

1 回答 1

4

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

您可以做的事情很少:

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