springboot增加接口及单元测试
增加基类接口
SpringBootUnitTest
@SpringBootTest
@Transactional
@Rollback
@RunWith(SpringRunner.class)
public class BaseUnitTest {
@Autowired private WebApplicationContext wac;
public MockMvc mvc;
@Before
public void setupMockMvc() {
// 初始化MockMvc对象
mvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
}
2,建立Controller层单元测试
@Slf4j
public class CrowdController extends BaseUnitTest {
@Test
public void testInsertCrowd() {
try {
mvc.perform(
MockMvcRequestBuilders.post("/crowd/add")
.content(MediaType.APPLICATION_JSON_VALUE)
.accept(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print());
} catch (Exception e) {
log.info("testInsertCrowd: {}", e.getMessage(), e);
}
}
@Test
public void testCrowd() {
try {
mvc.perform(
MockMvcRequestBuilders.get("/crowd_list")
.contentType(MediaType.APPLICATION_JSON_VALUE)
.accept(MediaType.APPLICATION_JSON_VALUE))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200"))
.andDo(MockMvcResultHandlers.print());
} catch (Exception e) {
log.info("testCrowd: {}", e.getMessage(), e);
}
}
}
.andExpect(MockMvcResultMatchers.jsonPath("$.code").value("200"))
此处断言表示当code为200时才算成功,其他都抛出异常