easymock - 模拟使用anyObject作为void setter方法的parma

时间:2014-03-05 06:48:58

标签: java junit easymock

使用easymocks,如何创建以下类的处理方法的模拟?我想创建一个可以接受MyObject.class类型的任何对象的模拟。

public class Custom {
    public void process(MyObject obj){
        //code
    }
}

我知道如果方法返回一些东西怎么做,但是使用void方法我无法理解。

请帮忙。

2 个答案:

答案 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);
}