Fre*_*zin 5 java unit-testing jersey java-ee
我正在为JERSEY项目编写单元测试.
对于没有查询字符串的方法,我可以实例化控制器并调用该方法.
也适用于路径中的参数,因为它们显示为方法的字符串参数.
但是当我得到queryStrings时,模式有一个特殊的参数 (@Context UriInfo url)
如何在单元测试中构建UriInfo参数?为什么这个类没有构造函数?
如果您在测试中使用Mockito,则可以模拟出UriInfo:
import java.net.URI;
import javax.ws.rs.core.UriInfo;
UriInfo mockUriInfo = mock(UriInfo.class);
when(mockUriInfo.getRequestUri()).thenReturn(new URI("http://www.test.com/go"));
Run Code Online (Sandbox Code Playgroud)
UriInfo是一个接口,因此您不能直接创建它的对象。您需要对其进行子类化并创建您自己的UriInfo类。所以你的 uriinfo 类应该将 String uri/url 转换为 UriInfo 对象。
public class UriInformation implements UriInfo {
MultivaluedMap<String, String> pathParamMap;
MultivaluedMap<String, String> queryParamMap;
public UriInformation(UriInfo uriInfo) {
//parse uriInfo
}
//setters/getters
}
Run Code Online (Sandbox Code Playgroud)
这样你就可以对你的资源进行单元测试,而无需在 tomcat/server 中运行它。
| 归档时间: |
|
| 查看次数: |
5703 次 |
| 最近记录: |