【发布时间】:2015-12-30 16:47:29
【问题描述】:
给定代码
@Test
public void testXClass(){
XClass xclass = new XClass();
UriBuilder uriBuilder = EasyMock.createMock(UriBuilder.class);
EasyMock.expect(uriBuilder.fromUri(EasyMock.anyObject(String.class))).andReturn(dummyUriBuilder()).anyTimes();
//EasyMock.replay(uriBuilder);
EasyMock.expect(xclass.xMethod(EasyMock.anyObject(String.class))).andReturn("Done").anyTimes();
String x = xclass.xMethod(EasyMock.anyObject(String.class));
}
private UriBuilder dummyUriBuilder() {
UriBuilder uriBuilder = UriBuilder.fromUri("https://dev.x-service.com");
uriBuilder.path("/x1/");
return uriBuilder;
}
class XClass {
public String xMethod(String x) {
...
UriBuilder uriBuilder = UriBuilder.fromUri("https://dev.x-service.com");
uriBuilder.path("/x1/");
...
}
}
我在线路上遇到错误
UriBuilder uriBuilder = UriBuilder.fromUri("https://dev.x-service.com");
堆栈跟踪:
java.lang.IllegalArgumentException at
org.apache.cxf.jaxrs.impl.UriBuilderImpl.uri(UriBuilderImpl.java:888) at
javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119)
如何模拟 UriBuilder 的东西?我认为我在设置 EasyMock 时做错了。
【问题讨论】: