簡體   English   中英

使用簡單的模擬對象

[英]Use Easy Mock Objects

我正在進行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模擬和Class對象,但找不到適合我的情況的示例。 有人可以指出一個例子嗎?

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. 
   }

您不能使用EasyMock模擬靜態方法調用。 2個解決方案:

  • 將靜態調用提取到SUT中的其他方法,並測試SUT的部分模擬版本(僅模擬完成靜態調用的新方法)。 使用easymock進行部分模擬
  • 如上所述,使用PowerMock並直接模擬靜態調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM