0

我正在做一个 Junit 测试,我需要一起处理 Easymock 和 Class 对象来测试。

以下是我的代码片段

@Before
public void setUp() {
    request=EasyMock.createMock(SlingHttpServletRequest.class);
    response=EasyMock.createMock(SlingHttpServletResponse.class);

}

@Test
public void testImage() {

RequestContext ctx = new RequestContext();  

// RequestContext and RequestContext Util are both classes defined in Project

    expect(RequestContextUtil.setupContext(request,response)).andReturn(ctx);

    // This line is throwing an error , so I am not able to add replay or verify method

}

我试图查看一个可以同时使用 Easy mock 和 Class 对象的示例,但我找不到适合我的情况。谁能给我举个例子?

4

2 回答 2

5
private MockHttpServletRequest request;
private MockHttpServletResponse response;

 @Before
 public void setup() {
    request = new MockHttpServletRequest();
    response = new MockHttpServletResponse();
}

    @Test
    public void testImage() {
      //here you don't need to `expect` or `reply` 

     // `request` and `response` is mock now. 
   }
于 2015-04-04T07:05:40.507 回答
1

您不能使用 EasyMock 模拟静态方法调用。2个解决方案:

  • 将静态调用提取到 SUT 中的不同方法并测试 SUT 的部分模拟版本(仅模拟完成静态调用的新方法)。使用 easymock 进行部分模拟
  • 如上所述,使用 PowerMock 并直接模拟静态调用。
于 2013-10-22T07:24:15.840 回答