【问题标题】:easymock - mocking to use anyObject as parma of void setter methodeasymock - 模拟使用 anyObject 作为 void setter 方法的参数
【发布时间】:2014-03-05 06:48:58
【问题描述】:

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

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

如果该方法返回某些内容,我知道该怎么做,但是使用 void 方法我无法理解它。

【问题讨论】:

    标签: java junit easymock


    【解决方案1】:

    下面是如何期待调用 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
    

    【讨论】:

      【解决方案2】:

      为了模拟 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);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多