
- 引入junit依赖
- 5个注解
- 举例
- MockMvc
@RunWith(SpringRunner.class) //底层用junit SpringJUnit4ClassRunner
@SpringBootTest(classes={XdclassApplication.class})//启动整个springboot工程
@before@Test@After
@RunWith(SpringRunner.class) //底层用junit SpringJUnit4ClassRunner
@SpringBootTest(classes={DemoProjectApplication.class})//启动整个springboot工程
public class VideoTest {
@Before
public void testOne(){
System.out.println("这个是测试 before");
}
@Test
public void testTwo1(){
System.out.println("这个是测试 test1");
TestCase.assertEquals(1,1);
}
@Test
public void testTwo2(){
System.out.println("这个是测试 test2");
}
@After
public void testThree(){
System.out.println("这个是测试 after");
}
}
c7e3单元测试调用Controller-Service层接口
例1:
@Test
public void loginTest(){//调用Controller接口
User user = new User();
user.setUsername("jack");
user.setPwd("1234");
JsonData jsonData = userController.login(user);
System.out.println(jsonData.toString());
TestCase.assertEquals(0,jsonData.getCode());
}
例2:
@Test
public void testVideoList(){//调用Service接口
List<Video> videoList = videoService.listVideo();
TestCase.assertTrue(videoList.size()>0);
}
MockMvc
MockMvc详解
对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如,启动速度慢,测试验证不方便,依赖网络环境等,所以为了可以对Controller进行测试,我们引入了MockMVC。
MockMvc实现了对Http请求的模拟,能够直接使用网络的形式,转换到Controller的调用,这样可以使得测试速度快、不依赖网络环境,而且提供了一套验证的工具,这样可以使得请求的验证统一而且很方便。
@RunWith(SpringRunner.class) //底层用junit SpringJUnit4ClassRunner
@SpringBootTest(classes={DemoProjectApplication.class})//启动整个springboot工程
@AutoConfigureMockMvc
public class VideoTest {
@Autowired
private VideoService videoService;
@Autowired
private MockMvc mockMvc;
@Test
public void testVideoListApi()throws Exception{
MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/api/v1/pub/video/list"))
.andExpect(MockMvcResultMatchers.status().isOk()).andReturn();
int status = mvcResult.getResponse().getStatus();
System.out.println(status);
//会乱码
//String result = mvcResult.getResponse().getContentAsString();
// 使用下面这个,增加 编码 说明,就不会乱码打印
String result = mvcResult.getResponse().getContentAsString(Charset.forName("utf-8"));
System.out.println(result);
}
关键是获取mockMVC这个对象
测试结果:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)