SpringBoot-单元测试

来源:互联网 发布:c语言病毒吃内存 编辑:程序博客网 时间:2024/05/21 07:58

SpringBoot-单元测试

一、对service进行测试:

在service中建立要测试的方法:

@Servicepublic 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());    }}

12.jpg

11.jpg

方式二:利用idea工具进行测试

在要测试的方法中选中右击:

步1.jpg

选择创建一个测试类:

步2.jpg

可以勾选需要进行测试的方法:

步3.jpg

选完之后会在项目的测试包下创建一个service包,service包中创建了测试类

步4.jpg

二、对controller进行测试(API测试)

对controller中的girlList方法进行测试:

@RestControllerpublic 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:

@RestControllerpublic 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@AutoConfigureMockMvcpublic 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

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 冰团e购扫码注册怎么办 苏宁销售火爆怎么办 菲洛城平台黑钱怎么办 货车扣12分怎么办 烟草证下来后怎么办 余款未结该怎么办 沙袋吸盘吸不住怎么办 电视购物不退货怎么办 母亲相信电视购物怎么办 中关村商城会买到假货怎么办 年休 科室主任不同意怎么办 怡成血糖仪不准怎么办 电子血压仪不准怎么办 学java没思路怎么办 安逸花评分不足怎么办 环保投诉不管用怎么办 乐购超市会员卡怎么办 易购225冻结金额怎么办 麻将机不洗牌了怎么办 麻将桌升不起来怎么办 公司宣布破产债务怎么办 一元乐购被骗怎么办 车被墙外皮砸了怎么办 win10安全中心打不开怎么办 导航出现001错误怎么办 车导航代码错误怎么办 买了假化妆品怎么办 发物流没有单号怎么办 天添网密码忘了怎么办 新华书香卡过期怎么办 车险断了一年怎么办 天添新倒闭捷信怎么办 建行diy信用卡怎么办卡 奥体 游泳卡过期怎么办 次卡过期了怎么办 该插件不受支持怎么办 信用卡申请找不到住址怎么办 中信信用卡白户怎么办 空调外铜管裸露怎么办 空调铜管露出来怎么办 小米分期后退货怎么办