java使用EasyMock模拟接受参数的接口
我有一个类MyClass
,它包含一个调用接口MyInterface
的构造函数MyInterface
包含一个方法validator
,该方法接受一个Int
和一个String
我需要使用EasyMock在JUnit测试中模拟来自MyInterface.validator
的返回Boolean
值
我已经多次尝试过这个put,当我试图从MyClass
调用MyInterface.validator
时,我只得到Java异常
public class MyClass {
public MyInterface myInterface;
public int test;
public MyClass (int INT, String STRING, MyInterface myInterface) {
this.myInterface = myInterface;
this.test = INT;
myInterface.validator(INT, STRING);
}
}
public interface MyInterface {
public Boolean validator(int INT, String STRING);
}
public class MyClassTest {
MyInterface mockMyInterface;
MyClass myClass;
@Before
public void setUp() throws Exception {
mockMyInterface = createMock(MyInterface.class);
}
@Test
public void test() {
myClass = new MyClass(10, "Test", mockMyInterface);
expect(mockMyInterface.validator(10, "Test")).andStubReturn(true);
replay(mockMyInterface);
assertEquals(myClass.test, 10);
verify(mockMyInterface);
}
}
# 1 楼答案
在使用它之前,必须配置模拟预期。您的构造函数调用mock,因此您应该在创建MyClass实例之前对其进行配置
试试这个: