首页>代码>Spring Boot学习(三)之构建RESTful API与单元测试 博客源码>/springbootstudy-demo3/src/test/java/com/xiaojingg/SpringbootstudyDemo3ApplicationTests.java
package com.xiaojingg;

import com.xiaojingg.web.HelloController;
import com.xiaojingg.web.UserController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.RequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootstudyDemo3ApplicationTests {

	private MockMvc mvc;

	@Before
	public void setUp() throws Exception {
		mvc = MockMvcBuilders.standaloneSetup(
				new HelloController(),
				new UserController()).build();
	}

	@Test
	public void getHello() throws Exception {
		mvc.perform(get("/hello").accept(MediaType.APPLICATION_JSON))
				.andExpect(status().isOk())
				.andExpect(content().string(equalTo("Hello World")));
	}

	@Test
	public void testUserController() throws Exception {
//  	测试UserController
		RequestBuilder request = null;

		// 1、get查一下user列表,应该为空
		request = get("/users/");
		mvc.perform(request)
				.andExpect(status().isOk())
				.andExpect(content().string(equalTo("[]")));

		// 2、post提交一个user
		request = post("/users/")
				.param("id", "1")
				.param("name", "筱进GG")
				.param("age", "20");
		mvc.perform(request)
//				.andDo(MockMvcResultHandlers.print())
				.andExpect(content().string(equalTo("success")));

		// 3、get获取user列表,应该有刚才插入的数据
		request = get("/users/");
		mvc.perform(request)
				.andExpect(status().isOk())
				.andExpect(content().string(equalTo("[{\"id\":1,\"name\":\"筱进GG\",\"age\":20}]")));

		// 4、put修改id为1的user
		request = put("/users/1")
				.param("name", "筱进GG筱进GG")
				.param("age", "30");
		mvc.perform(request)
				.andExpect(content().string(equalTo("success")));

		// 5、get一个id为1的user
		request = get("/users/1");
		mvc.perform(request)
				.andExpect(content().string(equalTo("{\"id\":1,\"name\":\"筱进GG筱进GG\",\"age\":30}")));

		// 6、del删除id为1的user
		request = delete("/users/1");
		mvc.perform(request)
				.andExpect(content().string(equalTo("success")));

		// 7、get查一下user列表,应该为空
		request = get("/users/");
		mvc.perform(request)
				.andExpect(status().isOk())
				.andExpect(content().string(equalTo("[]")));

	}

}
最近下载更多
jelinna  LV2 2022年12月6日
天险无涯  LV15 2021年10月18日
shiopaaa  LV13 2021年4月19日
503382513  LV10 2021年2月2日
阿昌先生  LV13 2021年1月19日
lironggang  LV38 2020年11月10日
右耳土匀金木又  LV1 2020年11月5日
ewan007  LV29 2020年10月21日
zaizai21312  LV10 2020年6月12日
53722426  LV7 2020年5月26日
最近浏览更多
哪里的完整版  LV7 2023年12月15日
dapeng0011  LV13 2023年6月19日
森sdfgf  LV8 2023年6月11日
yohohero  LV1 2023年1月14日
38735466  LV11 2023年1月8日
jelinna  LV2 2022年12月6日
内心向阳  LV4 2022年11月30日
葛乃玮  LV1 2022年10月19日
是你爸爸啊100  LV5 2022年7月23日
李润石  LV2 2022年1月18日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友