在 testify 包中出现错误“您正在测试的代码需要再进行 1 次调用”
Error `The code you are testing needs to make 1 more call(s)` in testify package
我在 golang 中使用 testify 包进行单元测试。我的代码包含模拟。虽然 运行 测试有时会通过,有时会显示错误 The code you are testing needs to make 1 more call(s)
,但我无法弄清楚发生这种情况的原因:
我经历了这个 https://github.com/stretchr/testify/issues/31 但确实明白了问题是什么以及如何解决?
我阅读了 goroutine 调度并了解到如果你正在为 go 函数(goroutines)编写测试那么有时它们可能会被调用(测试将通过的情况并且)有时它们可能不会被调用。(测试失败的情况)。要从中恢复,应该在我们调用 goroutine 的测试文件中使用 Gosched()。
发生这种情况是因为 Go 使用协作调度来调度 goroutine,这不同于抢占式和非抢占式。如果有人想了解更多信息,请遵循此。 https://github.com/golang/go/issues/11462
就我而言,这是一个愚蠢的错误 -
当您在执行测试生命周期时不必要地模拟方法调用而不是实际调用模拟方法时,可能会发生这种情况。
尝试删除您可能编写的不必要的方法模拟,这可能会解决您的问题!!
我在 golang 中使用 testify 包进行单元测试。我的代码包含模拟。虽然 运行 测试有时会通过,有时会显示错误 The code you are testing needs to make 1 more call(s)
,但我无法弄清楚发生这种情况的原因:
我经历了这个 https://github.com/stretchr/testify/issues/31 但确实明白了问题是什么以及如何解决?
我阅读了 goroutine 调度并了解到如果你正在为 go 函数(goroutines)编写测试那么有时它们可能会被调用(测试将通过的情况并且)有时它们可能不会被调用。(测试失败的情况)。要从中恢复,应该在我们调用 goroutine 的测试文件中使用 Gosched()。 发生这种情况是因为 Go 使用协作调度来调度 goroutine,这不同于抢占式和非抢占式。如果有人想了解更多信息,请遵循此。 https://github.com/golang/go/issues/11462
就我而言,这是一个愚蠢的错误 -
当您在执行测试生命周期时不必要地模拟方法调用而不是实际调用模拟方法时,可能会发生这种情况。
尝试删除您可能编写的不必要的方法模拟,这可能会解决您的问题!!