一般来说,JUnit4的时候,直接new这个对象就行了,没必要mock。但是有时遇到了很难new的对象,就不能new了,例如HttpServletRequest
-
private HttpServletRequest mock(String uri, String client_id, String secret) {
-
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
-
EasyMock.expect(request.getRequestURI()).andReturn(uri).anyTimes();
-
-
DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH);
-
long now = System.currentTimeMillis();
-
String stringToSign = "POST" + " " + uri + "\n" + df.format(now);
-
String sign = getSignature(stringToSign, secret);
-
String auth = "MWS " + client_id + ":" + sign;
-
EasyMock.expect(request.getHeader("Date")).andReturn(df.format(now)).anyTimes();
-
EasyMock.expect(request.getHeader("Authorization")).andReturn(auth).anyTimes();
-
EasyMock.expect(request.getMethod()).andReturn("POST");
-
EasyMock.replay(request);
-
return request;
-
-
}
具体细节也没细究,可以网上查,不过一般上述Mock就够用了。
需要的依赖
-
<dependency>
-
<groupId>easymock</groupId>
-
<artifactId>easymock</artifactId>
-
<version>2.0</version>
-
<scope>test</scope>
-
</dependency>
阅读(497) | 评论(0) | 转发(0) |