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框架就写不下去了。我这里有两个问题。

请帮我解决问题

顾名思义,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