我正在为JERSEY项目编写单元测试。

对于没有查询字符串的方法,我可以实例化 Controller 并调用该方法。

也适用于路径中的参数,因为它们显示为方法的字符串参数。

但是当我得到queryStrings时,模式有一个特殊的参数(@Context UriInfo url)
如何在单元测试中构建UriInfo参数?
为什么此类没有构造函数?

最佳答案

UriInfo是一个接口(interface),因此您不能直接创建其对象。您需要对其进行子类化并创建自己的UriInfo类。因此,您的uriinfo类应将字符串uri/url转换为UriInfo对象。

public class UriInformation implements UriInfo {
    MultivaluedMap<String, String> pathParamMap;
    MultivaluedMap<String, String> queryParamMap;
    public UriInformation(UriInfo uriInfo) {
        //parse uriInfo
    }
 //setters/getters
}

因此,您可以在不运行tomcat/server的情况下对资源进行单元测试。

09-05 20:16