@RunWith(SpringRunner.class):SpringRunner继承类SpringJUnit4ClassRunner
package com.ding;
import com.ding.service.CacheService;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpStatus;
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.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import java.util.List;
/**
* @author hy.ding
* @date 2019/8/26
*/
// @RunWith(SpringJUnit4ClassRunner.class)
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class MockMvcTest {
MockMvc mockMvc;
@Autowired
private WebApplicationContext context;
@Autowired
private CacheService cacheService;
@Before
public void setMockMvc() {
mockMvc = MockMvcBuilders.webAppContextSetup(context).build();
}
@Test
public void cacheServiceTest() {
cacheService.reload();
int status = cacheService.getStatus();
System.out.printf(">>>>>> result:" + status);
}
@Test
public void test() throws Exception {
// 执行MockMvcRequestBuilders请求。其中.post()表示发送post请求(可以使用get、post、put、delete等)
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.post("/auth/token")
// 设置编码格式
.accept(MediaType.APPLICATION_JSON_UTF8_VALUE))
// MockMvcResultMatchers验证规则,验证执行结果是否正确
.andExpect(MockMvcResultMatchers.status().isOk())
// MockMvcResultHandlers结果处理器,这是可以用于打印结果输出
.andDo(MockMvcResultHandlers.print())
// 执行结果返回MvcResult
.andReturn();
int status = result.getResponse().getStatus();
// 断言,判断返回代码是否正确
Assert.assertEquals(HttpStatus.OK.value(), status);
// 响应结果
String content = result.getResponse().getContentAsString();
System.out.printf(">>>>>> content:" + content);
}
}