繁体   English   中英

Jersey JUnit测试框架 - 错误状态500

[英]Jersey JUnit Test Framework - Error Status 500

我想用球衣测试框架测试我的球衣1应用程序

我想测试一下:

@Path("fieldgen")
public class VRApi {

@Path("/testCon")
@GET
@Produces(MediaType.APPLICATION_JSON)
public String testCon() {

    return "testcon";
}

@Path("/getTestObj")
@GET
@Produces(MediaType.APPLICATION_JSON)
public TestObj getField() {

    TestObj tobj= new TestObj ("str1", "str2", "str3");
    return tobj;
}

这是我的测试类:

public class TestMB extends JerseyTest{

private WebResource webResource = resource();

public TestMB() throws Exception {
    super("...api...");
}

@Test
public void testCon() {

    String responseMsg = webResource.path("/fieldgen/testCon").get(String.class);
    assertEquals("testcon", responseMsg);       
}


@Test
public void getTestObj()  {

    WebResource.Builder mbRes = webResource.path("/fieldgen/getTestObj").accept(MediaType.APPLICATION_JSON);
    TestObj vr = mbRes.get(TestObj.class);

    assertEquals(vr, new TestObj("str1", "str2", "str3"));
}   

第一次测试没问题。 第二次测试失败:

  A message body writer for Java class modelVR.TestObj, and Java type class 
  modelVR.TestObj, and MIME media type application/json was not found

我也尝试使用ClientResponse。 POM dep。:

     <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.17.1</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey.jersey-test-framework</groupId>
        <artifactId>jersey-test-framework-inmemory</artifactId>
        <version>1.17.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.17.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.17.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-core</artifactId>
        <version>1.17.1</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>3.0-alpha-1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>1.19.3</version>
    </dependency>

有什么问题? 谢谢。

您可能缺少“jackson-databind”,其中包括自动POJO到JSON和反向映射器。 (杰克逊1.x的名字可能略有不同)

检查您是否已经注册在客户端POJO的映射功能,如球衣文档解释这里 相关片段如下。

 ClientConfig clientConfig = new DefaultClientConfig();
 clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
 Client client = Client.create(clientConfig)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM