如何模拟递归函数



当我测试一个方法时,该方法的内部会调用自身和同一类中的另一个方法。我使用部分模拟来指定其他方法的返回值,但如何指定第一个方法的返回值?

如果你正在模拟该方法,那么它不再是递归的 - 因为模拟只会返回递归后返回的最终返回值。

如果你想测试递归函数,那么不要嘲笑递归方法。

你的解释有点不清楚,但也许只是嘲笑调用的其他方法就足以让你进行测试。 您可以确保使用正确的参数调用其他方法。

让我们在 mockk 中尝试returnsMany

coEvery{ mockEntity.recursiveMethod()}.returnsMany(value1, value2,...)

第一次调用递归方法()将返回值1,然后第二次调用返回值2,...

以正确的方式处理递归流

相关内容

  • 没有找到相关文章

最新更新