我想测试一个REST资源:
@GET
@Path("/{dbName}")
@Produces(MediaType.APPLICATION_JSON)
public String getRequest(@PathParam("dbName") String dbName)
throws JSONException {
我想要做到这个:
assert(someExpectedOutput,getRequest())
现在如何为@Path注释设置路径?
如果您要直接测试getRequest
,作为Java方法,请直接传递一个字符串:
assertEquals(someExpectedOutput, getRequest("someMockDbName"));
毕竟,这只是一个带有一个字符串参数的Java方法。
JAX-RS注解仅在您运行服务器时才会生效,在这种情况下,框架将匹配路径参数与您的Java参数dbname
。 我假设您只是使用模拟对象进行测试,所以不用担心。 传递任何您喜欢的字符串即可。
现在,如果您要在服务器内进行测试(更像是集成测试),请考虑使用Jetty作为Web服务器,HSQLDB或Derby作为数据库。 这种类型的测试涉及更多。