【问题标题】:Error `The code you are testing needs to make 1 more call(s)` in testify package错误`您正在测试的代码需要在 testify 包中进行 1 次调用`
【发布时间】:2018-05-10 15:35:55
【问题描述】:

我在 golang 中使用 testify 包进行单元测试。我的代码包含模拟。在运行测试时它有时会通过并有时会显示错误The code you are testing needs to make 1 more call(s),我无法弄清楚发生这种情况的原因:

我查看了这个https://github.com/stretchr/testify/issues/31,但确实知道问题出在哪里以及如何解决?

【问题讨论】:

  • 请提供一个最低限度的“非”工作示例。

标签: unit-testing go testify


【解决方案1】:

我阅读了有关 goroutine 调度的内容,并了解到如果您正在为 go 函数(goroutines)编写测试,那么有时它们可​​能会被调用(测试将通过的情况),有时它们可​​能不会被调用.(测试失败的情况)。要从中恢复,应该在我们调用 goroutine 的测试文件中使用 Gosched()。 发生这种情况是因为 go 使用协作调度来调度 goroutine,这与抢占式和非抢占式不同。如果有人想了解更多信息,请遵循此。 https://github.com/golang/go/issues/11462

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多