REST资源测试

3

我想测试一个REST资源:

 @GET
@Path("/{dbName}")
@Produces(MediaType.APPLICATION_JSON)
public String getRequest(@PathParam("dbName") String dbName)
        throws JSONException  {

我想要做到这个:

assert(someExpectedOutput,getRequest())

现在如何为@Path注释设置路径?
2个回答

2

如果您要直接测试getRequest,作为Java方法,请直接传递一个字符串:

assertEquals(someExpectedOutput, getRequest("someMockDbName"));

毕竟,这只是一个带有一个字符串参数的Java方法。

JAX-RS注解仅在您运行服务器时才会生效,在这种情况下,框架将匹配路径参数与您的Java参数dbname。 我假设您只是使用模拟对象进行测试,所以不用担心。 传递任何您喜欢的字符串即可。

现在,如果您要在服务器内进行测试(更像是集成测试),请考虑使用Jetty作为Web服务器,HSQLDB或Derby作为数据库。 这种类型的测试涉及更多。


这可能对进行集成测试有所帮助:http://www.baeldung.com/2011/10/13/integration-testing-a-rest-api/ - Eugen

1
发现了用于测试的Jersey框架(com.sun.jersey.test.framework),也很有用。或者像上面那样,按照正常的JUnit方式进行测试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接