SpringBoot——单元测试

发表于:2017-8-18 13:20

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:JS_HCX    来源:51Testing软件测试网采编

  SpringBoot-单元测试
  一、对service进行测试:
  在service中建立要测试的方法:
  @Service
  public class GirlService {
      @Autowired
      private GirlRepository girlRepository;
      /**
       * 通过id查询一个女生的信息
       * @param id
       * @return
       */
      public Girl findOne(Integer id){
          return girlRepository.findOne(id);
      }
  }
  在test文件夹下已经有一个idea初始化项目时创建的文件GirlApplicationTests
  方式一:手动建测试类
  新建一个针对测试service中的方法进行测试的类GirlServiceTest:
  @RunWith(SpringRunner.class) //表示在测试环境中运行
  @SpringBootTest //启动整个springboot工程
  public class GirlServiceTest {
      @Autowired
      private GirlService girlService;
      @Test
      public void findOneTest(){
          Girl girl = girlService.findOne(12);
          Assert.assertEquals(new Integer(14),girl.getAge());
      }
  }

  方式二:利用idea工具进行测试
  在要测试的方法中选中右击:
  步1.jpg
  选择创建一个测试类:
  步2.jpg
  可以勾选需要进行测试的方法:
  步3.jpg
  选完之后会在项目的测试包下创建一个service包,service包中创建了测试类
  步4.jpg
  二、对controller进行测试(API测试)
  对controller中的girlList方法进行测试:
  @RestController
  public class GirlController {
      /**
       * getLogger方法中的参数与类名对应
       */
      private final static Logger logger = LoggerFactory.getLogger(GirlController.class);
      @Autowired
      private GirlRepository girlRepository;
      @Autowired
      private GirlService girlService;
      /**
       * 查询所有女生
       * @return
       */
      @GetMapping(value = "/girls")
      public List<Girl> girlList(){
  //        System.out.println("我是girlList方法");
          logger.info("我是girlList方法");
          return girlRepository.findAll();
      }
  }
  用以上同样的步骤让idea创建出测试类
  需要达到该方法通过什么请求,url地址是什么进行测试:
  GirlController:
  @RestController
  public class GirlController {
      /**
       * getLogger方法中的参数与类名对应
       */
      private final static Logger logger = LoggerFactory.getLogger(GirlController.class);
      @Autowired
      private GirlRepository girlRepository;
      @Autowired
      private GirlService girlService;
      /**
       * 查询所有女生
       * @return
       */
      @GetMapping(value = "/girls")
      public List<Girl> girlList(){
  //        System.out.println("我是girlList方法");
          logger.info("我是girlList方法");
          return girlRepository.findAll();
      }
  }
  GirlControllerTest:
  @RunWith(SpringRunner.class)
  @SpringBootTest
  @AutoConfigureMockMvc
  public class GirlControllerTest {
      @Autowired
      private MockMvc mvc;
      //测试希望返回的状态码为200
      @Test
      public void girlList() throws Exception {
          mvc.perform(MockMvcRequestBuilders.get("/girls"))
                  .andExpect(MockMvcResultMatchers.status().isOk())
          .andExpect(MockMvcResultMatchers.content().string("abc")); //对内容进行判断,期望返回的内容是abc
      }
  }
  运行结果:
  成功结果.jpg
  失败结果.jpg
  内容.jpg
  注意:
  对于所有的单元测试,在项目打包的时候会自动执行
  希望打包的时候跳过单元测试:
  mvn clean package -Dmaven.test.skip=true
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号