模拟代码减少代码覆盖率

时间:2018-01-27 19:06:46

标签: unit-testing go test-coverage

我正在使用Golang并使用mockhiato为所有接口生成模拟。此工具在同一包中的mocks.go文件中生成模拟实现。我无法将mocks.go重命名为mocks_test.go,因为此模拟文件被其他包使用。

问题是这些模拟文件是由go coverage工具计算的,因此减少了我的包的代码覆盖率。

我正在寻找一个好的解决方法,以便我的代码覆盖率不会显示错误的数字。

2 个答案:

答案 0 :(得分:2)

在这种情况下,最好的方法是将模拟移动到他们自己的专用包中,这个包没有测试覆盖率。这将消除它们对您实际需要覆盖数据的代码的影响。

答案 1 :(得分:0)

这就是我们解决问题的方式。

  1. 将界面放置在使用者文件夹中。如果将服务注入到处理程序中,则处理程序将具有服务的接口定义。这是因为GoLang哲学认为接口是使用功能而不是公开功能。
  2. 使用嘲讽来生成模拟。

  3. 在单独的_mock文件夹中生成模拟。