Dropwizard,Jersey,单元测试 - GET抛出ConstraintViolationException:请求实体为空

时间:2014-08-05 15:13:49

标签: junit jersey dropwizard

我有Dropwizard应用程序,我正在为它编写单元测试。我按照Dropwizard的文档进行操作:http://dropwizard.readthedocs.org/en/latest/manual/testing.html

我缺少的是如何在调用GET方法的测试中添加参数? 在文档中:

assertThat(resources.client()。资源( “/人/等等”)。得到(Person.class))                 .isEqualTo(人);

如果我的get方法有参数怎么办?

在Jersey的WebResource中有:

    @Override
    public <T> T get(Class<T> c) throws UniformInterfaceException, ClientHandlerException {
        return handle(c, build("GET"));
    }

    @Override
    public <T> T get(GenericType<T> gt) throws UniformInterfaceException, ClientHandlerException {
        return handle(gt, build("GET"));            
    }

1 个答案:

答案 0 :(得分:0)

查询参数是资源URI的一部分。您可以将它们嵌入字符串中:

assertThat(resources.client().resource("/person/blah?a=b").get(Person.class)).isEqualTo(person);

或者您可以动态构建URI:

URI resourceUri = UriBuilder.fromPath("/person/blah").queryParam("a", "b").build();
assertThat(resources.client().resource(resourceUri).get(Person.class)).isEqualTo(person);