使用easymocks,如何创建以下类的处理方法的模拟?我想创建一个可以接受MyObject.class类型的任何对象的模拟。
public class Custom {
public void process(MyObject obj){
//code
}
}
我知道如果方法返回一些东西怎么做,但是使用void方法我无法理解。
请帮忙。
答案 0 :(得分:3)
以下是关于void
方法
Custom mock = EasyMock.createMock(Custom.class); // create the mock
mock.process(EasyMock.anyObject(MyObject.class)); // invoke the method
EasyMock.expectLastCall(); // register it as expected
EasyMock.replay(mock); // set the state
mock.process(new MyObject()); // invoke the method in the test
EasyMock.verify(mock); // verify the call
答案 1 :(得分:1)
为了模拟void
方法,您只需在模拟对象上调用它之前调用重播。
@Test
public void testSomething() {
Custom mock = createMock(Custom.class);
mock.process(any(MyObject.class);
replay(mock);
// Your test comes here
// Optional - check the process was called
verify(mock);
}