这里我有一个正在实现method1
的类 A。
class A{
public void method1(String name){
classB b = new classB();
// Some operations
b.method2(argument1);
}
}
我想捕获传递给method2
的参数,我为其编写了以下代码。
我收到了错误,因为当我验证以捕获以下代码中的参数时,没有调用模拟。请让我知道如何通过调用模拟来捕获传递给method2
的参数来成功执行此操作
class ATest{
String name = "name";
@Before
public void setup{
class A = new class A();
class B = Mockito.mock(classB.class);
}
public void testmethod1()
{
A.method1(name);
ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
Mockito.verify(B, Mockito.times(1)).method2(captor.capture());
String actual = captor.getValue();
assertEquals("some data", actual);
}
}
Class B
需要是Class A
的依赖项,以便您能够正确模拟它。或者它可以是一个参数。
Class A{
public final B b;
public A(B b){
this.b = b
}
public void method1(String name){
// Some operations
b.method2(argument1);
}
}
然后在模拟中的测试中,当您实例化class A
class ATest{
private B b;
private A a;
@Before
public void setup{
b = Mockito.mock(B.class);
a = new A(b);
}
// tests...
}