0

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

4

2 回答 2

2

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

如果要测试递归函数,则不要模拟递归方法。

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

于 2013-09-22T23:07:04.243 回答
0

让我们尝试returnsMany模拟:

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

第一次调用 recursiveMethod() 将返回 value1,然后第二次调用返回 value2,...

以正确的方式处理您的递归流程

于 2020-01-15T04:01:40.297 回答