Spring Boot入门(7)-单元测试

我们在开发完 项目时,上线之前一般都会进行测试。下面介绍 SpringBoot 给 Service 和Controller 测试。

一、对 Service 进行测试

1、UserService.java

  1. package com.liuyanzhao.blog.service;
  2. import com.liuyanzhao.blog.domain.User;
  3. import com.liuyanzhao.blog.repository.UserRepository;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. /**
  7.  * @Author 言曌
  8.  * @DATE 2017/10/29 下午9:02
  9.  * @URL http://liuyanzhao.com
  10.  */
  11. @Service
  12. public class UserService {
  13.     @Autowired
  14.     private UserRepository userRepository;
  15.     /**
  16.      * 根据id查询一个用户的信息
  17.      * @param id
  18.      * @return
  19.      */
  20.     public User findOne(Integer id) {
  21.         return userRepository.findOne(id);
  22.     }
  23. }

 

2、UserServiceTest.java

  1. package com.liuyanzhao.blog.service;
  2. import com.liuyanzhao.blog.domain.User;
  3. import org.junit.Assert;
  4. import org.junit.Test;
  5. import org.junit.runner.RunWith;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.boot.test.context.SpringBootTest;
  8. import org.springframework.test.context.junit4.SpringRunner;
  9. /**
  10.  * @Author 言曌
  11.  * @DATE 2017/11/1 下午4:47
  12.  * @URL http://liuyanzhao.com
  13.  */
  14. @RunWith(SpringRunner.class)
  15. @SpringBootTest
  16. public class UserServiceTest {
  17.     @Autowired
  18.     private UserService userService;
  19.     @Test
  20.     public void findOne() throws Exception {
  21.         //获得id为14的用户信息
  22.         User user = userService.findOne(14);
  23.         //断言两者相等
  24.         Assert.assertEquals(new Integer(7),user.getAge());
  25.     }
  26. }

注意第18-19行的两个注解,必须加。

获得id=14的用户信息,如果该用户的age=7,则测试通过(绿),否则测试不通过(红)

 

 

二、对 Controller 进行测试

1、UserController.java

  1. package com.liuyanzhao.blog.controller;
  2. import com.liuyanzhao.blog.domain.User;
  3. import com.liuyanzhao.blog.repository.UserRepository;
  4. import com.liuyanzhao.blog.service.UserService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.web.bind.annotation.*;
  7. import java.util.List;
  8. /**
  9.  * @Author 言曌
  10.  * @DATE 2017/10/29 上午10:33
  11.  * @URL http://liuyanzhao.com
  12.  */
  13. @RestController
  14. public class UserController {
  15.     @Autowired
  16.     private UserRepository userRepository;
  17.     /**
  18.      * 查询所有用户列表
  19.      * @return
  20.      */
  21.     @GetMapping(value = "/users")
  22.     public List<User> listUser() {
  23.         return userRepository.findAll();
  24.     }
  25. }

 

2、UserControllerTest.java

  1. package com.liuyanzhao.blog.controller;
  2. import org.junit.Test;
  3. import org.junit.runner.RunWith;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
  6. import org.springframework.boot.test.context.SpringBootTest;
  7. import org.springframework.test.context.junit4.SpringRunner;
  8. import org.springframework.test.web.servlet.MockMvc;
  9. import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
  10. import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
  11. /**
  12.  * @Author 言曌
  13.  * @DATE 2017/11/1 下午5:00
  14.  * @URL http://liuyanzhao.com
  15.  */
  16. @RunWith(SpringRunner.class)
  17. @SpringBootTest
  18. @AutoConfigureMockMvc
  19. public class UserControllerTest {
  20.     @Autowired
  21.     private MockMvc mvc;
  22.     @Test
  23.     public void listUser() throws Exception {
  24.         mvc.perform(MockMvcRequestBuilders.get("/users"))
  25.                 .andExpect(MockMvcResultMatchers.status().isOk());//期望通过
  26.                 //.andExpect(MockMvcResultMatchers.content().string("abc"));//期望结果是一个值
  27.     }
  28. }

注意第19-21行的三个注解,必须加。

如果测试通过绿,否则红。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半缘修道半缘君丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值