java - 单元测试 JAX-RS Controller 的最佳方法?

标签 java rest unit-testing jax-rs

我正在学习库javax.ws.rs,所以我编写了一个玩具API。

例如,我已经使用了这个 POST 方法。我已经看到有很多用于测试的库,例如 Jersey 或 Rest Assured,但是,如何对响应代码为 200 且内容为 "hello"

 @POST
     @Path("/getFoo")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     Foo getFoo(@BeanParam final Foo foo)
    {
            return new Foo("hello");
    }

最佳答案

对于 Jersey Web 服务测试,有多个测试框架,即:Jersey Test Framework ( https://jersey.java.net/documentation/1.17/test-framework.html ) 和 REST-Assured ( https://code.google.com/p/rest-assured ) - 请参阅此处两者的比较/设置 ( http://www.hascode.com/2011/09/rest-assured-vs-jersey-test-framework-testing-your-restful-web-services/ )。

package com.example.rest;

import static com.jayway.restassured.RestAssured.expect;
import groovyx.net.http.ContentType;

import org.junit.Before;
import org.junit.Test;

import com.jayway.restassured.RestAssured;

public class Products{

    @Before
    public void setUp(){
        RestAssured.basePath = "http://localhost:8080";
    }

    @Test
    public void testGetProducts(){
        expect().statusCode(200).contentType(ContentType.JSON).when()
                .get("/getProducts/companyid/companyname/12345088723");
    }

}

关于java - 单元测试 JAX-RS Controller 的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43121234/

相关文章:

python - 列出 Nosetest 找到的所有测试

iphone - 能够从应用程序包中加载文件,但不能从测试应用程序包中加载文件

java - 如何创建多列 CardView

java - RESTeasy服务输入参数为空

ios - 使用 UIWindow() 进行单元测试时出现 NSInternalConsistencyException

javascript - Restful 响应中的 json 数据是否应该包含对象类型信息?

javascript - SharePoint 2013 库检索所有文件名。休息API

java - stdin、stdout、stderr 如何关闭

java - JSoup同时提取href和div标签数据的绝对url

java - flatMap Set of Sets inside groupingBy 的优雅方式