Junit CXF REST API 和回滚测试数据
Junit CXF REST API and rollback test data
我想为 REST 编写 Junit 测试用例 API。 API 是使用 CXF 框架编写的。
web.xml:
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
spring-config.xml:
<jaxrs:server id="/SomeAction" address="/SomeAction" staticSubresourceResolution="true" publishedEndpointUrl="${endpointUrl}/SomeAction">
<jaxrs:serviceBeans>
<ref bean="SomeWebService"></ref>
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="jsonProvider"></ref>
<ref bean="exceptionMapper"></ref>
</jaxrs:providers>
</jaxrs:server>
网络服务:
@Override
@POST
@Consumes("application/json")
@Produces("application/json")
@Path("/doSome")
public WSResponse doSome(WSRequest request) {
//Do Some operation
}
单位
@Test
public void testDoSome()
throws Exception {
mockMvc.perform(
post("/SomeAction/doSome").contentType(contentType))
.andExpect(status().isFound());
}
我可以为简单的 REST API 编写 Junit 测试用例,并在测试完成后使用 spring 测试回滚数据。但是涉及到CXF框架就写不下去了。我这里有两个问题。
上面的Junit代码returns 404响应而不是200.
我要
测试完成后回滚数据
请帮我解决问题
顾名思义,Spring MVC 测试框架 用于测试 Spring MVC Web 和 Spring MVC REST 应用程序。
您正在编写基于 JAX-RS 的 CXF REST 应用程序。
Spring MVC REST 不是 JAX-RS 的实现。
因此无法使用 Spring MVC 测试(即 MockMvc
)来测试 JAX-RS 应用程序。
要测试 JAX-RS 端点,您需要使用专门支持 JAX-RS 的测试框架。例如,您可能想使用 CXF 的 JAX-RS Testing 支持,或者您可以 Google "jax-rs testing" 寻找其他解决方案。
您可以使用 CXF 的本地传输:
https://cwiki.apache.org/confluence/display/CXF20DOC/Local+Transport
我想为 REST 编写 Junit 测试用例 API。 API 是使用 CXF 框架编写的。
web.xml:
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
spring-config.xml:
<jaxrs:server id="/SomeAction" address="/SomeAction" staticSubresourceResolution="true" publishedEndpointUrl="${endpointUrl}/SomeAction">
<jaxrs:serviceBeans>
<ref bean="SomeWebService"></ref>
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="jsonProvider"></ref>
<ref bean="exceptionMapper"></ref>
</jaxrs:providers>
</jaxrs:server>
网络服务:
@Override
@POST
@Consumes("application/json")
@Produces("application/json")
@Path("/doSome")
public WSResponse doSome(WSRequest request) {
//Do Some operation
}
单位
@Test
public void testDoSome()
throws Exception {
mockMvc.perform(
post("/SomeAction/doSome").contentType(contentType))
.andExpect(status().isFound());
}
我可以为简单的 REST API 编写 Junit 测试用例,并在测试完成后使用 spring 测试回滚数据。但是涉及到CXF框架就写不下去了。我这里有两个问题。
上面的Junit代码returns 404响应而不是200.
我要 测试完成后回滚数据
请帮我解决问题
顾名思义,Spring MVC 测试框架 用于测试 Spring MVC Web 和 Spring MVC REST 应用程序。
您正在编写基于 JAX-RS 的 CXF REST 应用程序。
Spring MVC REST 不是 JAX-RS 的实现。
因此无法使用 Spring MVC 测试(即 MockMvc
)来测试 JAX-RS 应用程序。
要测试 JAX-RS 端点,您需要使用专门支持 JAX-RS 的测试框架。例如,您可能想使用 CXF 的 JAX-RS Testing 支持,或者您可以 Google "jax-rs testing" 寻找其他解决方案。
您可以使用 CXF 的本地传输:
https://cwiki.apache.org/confluence/display/CXF20DOC/Local+Transport