首页 > 代码库 > rest-assured : Restful API 测试利器 - 真正的黑盒单元测试(跟Spring-Boot更配哦)
rest-assured : Restful API 测试利器 - 真正的黑盒单元测试(跟Spring-Boot更配哦)
这里先贴一下IBM上的介绍
http://www.ibm.com/developerworks/cn/java/j-lo-rest-assured/index.html
Java 程序员常常借助于 JUnit 来测试自己的 REST API,不,应该这样说,Java 程序员常常借助于 JUnit 来测试 REST API 的实现!从某种角度来说,这是一种“白盒测试”,Java 程序员清楚地知道正在测试的是哪个类、哪个方法,而不是从用户的角度出发,测试的是哪个 REST API。
不废话,直接给Spring-Boot项目配置:
import static com.jayway.restassured.RestAssured.given;import org.apache.logging.log4j.LogManager;import org.hamcrest.Matcher;import org.junit.After;import org.mockito.internal.matchers.Equals;import org.mockito.internal.matchers.GreaterThan;import org.mockito.internal.matchers.NotNull;import org.mockito.internal.matchers.Null;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.jayway.restassured.matcher.ResponseAwareMatcher;import com.jayway.restassured.response.Response;import com.jayway.restassured.response.ValidatableResponse;@RunWith(SpringJUnit4ClassRunner.class) //1.@SpringApplicationConfiguration(classes = YourApp.class) // 2.SpringBoot入口类@WebIntegrationTest("server.port:0") // 3: server.port:0 > 指定服务器端口,为0表示随机端口public class YourControllerTest{ @Value("${local.server.port}") //4 int port; @Before public void doBefore(){ RestAssured.port = port; } @Test public void firstTest(){ JSONObject parm = new JSONObject(); parm.put("userId", "your id"); parm.put("name", "your name"); ValidatableResponse response = given().contentType("application/json") .request().body(parm.toJSONString()) .when().post("/your/restful/api") .then() .body("return_code", new ResponseAwareMatcher<Response>() { @Override public Matcher<?> matcher(Response response) throws Exception { System.out.println(response.prettyPrint());//获取返回的json数据(1),举例:{"return_code":0,"return_msg":"success"} return new Equals(0); } }) .body("return_code",new Equals(0)); ; JSONObject json = JSONObject.parseObject(response.extract().asString());//获取返回的json数据(2) //自己写一些代码 }}
pom.xml引入jar
<dependency> <groupId>com.jayway.restassured</groupId> <artifactId>rest-assured</artifactId> <version>2.3.3</version> <scope>test</scope> </dependency>
该测试工具跟Spring-Boot简直绝配,跑测试用例时,会启动SpringBoot(你配置的YourApp.java),等启动完成,会跑testcase,最后会关闭服务器。
真正的黑盒+单元测试,让restful API更高质量。
rest-assured : Restful API 测试利器 - 真正的黑盒单元测试(跟Spring-Boot更配哦)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。