要解决在被测试的函数/构造函数上的Mockito重复方法调用的问题,可以使用Mockito的verify方法来验证方法调用的次数。
以下是一个示例代码:
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import java.util.List;
import static org.mockito.Mockito.*;
public class MyClassTest {
@Test
public void testMyMethod() {
// 创建一个mock对象
List mockList = Mockito.mock(List.class);
// 调用被测试的方法
MyClass myClass = new MyClass(mockList);
myClass.myMethod();
// 验证方法调用的次数
verify(mockList, times(1)).add("someString");
}
}
class MyClass {
private List list;
public MyClass(List list) {
this.list = list;
}
public void myMethod() {
list.add("someString");
list.add("someString");
}
}
在上面的示例中,我们创建了一个mock对象 mockList
,并将其传递给被测试类 MyClass
的构造函数。然后我们调用 myMethod
方法,在该方法中对 mockList
进行了两次 add
方法调用。
最后,我们使用 verify
方法来验证 add
方法的调用次数是否为1次。如果方法被调用的次数与期望的不一致,将会抛出一个 VerificationError
异常。
通过这种方式,我们可以验证被测试的函数/构造函数上的Mockito重复方法调用是否符合预期。