Test测试(4.27-c7e2)

Test测试(4.27-c7e2),第1张

  • 引入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这个对象
测试结果:

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/756757.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-30
下一篇2022-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存