mock测试

1.什么是mock测试
在测试时,对于某些不容易构造或者不容易获取的比较复杂的数据或者场景,用一个虚拟对象(mock对象)来创建测试用例的测试方法

2.为什么要进行mock测试
mock测试为了解决不同测试单元由于耦合而难以开发,测试的问题,最大的功能就是将待测试单元解耦合,并模拟这些依赖,验证你调用依赖的行为

3.mock测试适用的场景
(1)专注于测试模块的逻辑功能,其他依赖模块不关注
(2)其他依赖模块未开发完成,不能交付数据,此时进行自测,相当于白盒测试
(3)被测试对象难以模拟或者构造比较复杂

4.项目中如何进行mock测试
选着待测试类,右键点击generate,在出现的面板中,选择Junit测试版本,generate选项中的setup/@beforeach,并勾选要测试的方法点击ok,就会在test目录下生成对应的测试目录

5.mock测试中一下常用的语句和方法
@beforEach
在测试前准备,测试前会构建很多的环境配置或者基础配置

@afterEach
在测试后进行处理

@mock
注解可以理解为对mock方法的一个代替,不会走真实的方法,会模拟真实方法的行为,使用该注解时需要使用mockitoAnnotations.openmock(this)方法,让注解生效,

@Spy
被@Spy修饰的对象会走真实的方法,而@mock对象不会,
@Spy方法修饰的参数是对象实例,@mock的参数是class

@injeckmocks
用于将@mock标记的模拟变量注入到测试类中,mockitoAnnotations.openmock(this)开启mock,配合以上两个注解进行测试,一般放在@beforeEach中在测试之前开启,相当于,每个测试类都开启了

mockito.when(demo.add(1,2)).thenreturn(3)
mock的核心,可以设置要测试的结果,这样就可以忽略真实的执行,后续都是基于打桩结果的执行

mockito.when(demo.add(1,2)).thenthrow(new runtimeexception())
用于模拟异常

assertions.assertEquals(3,demo.add(1,2))
断言,测试的主要方式,结果基于此判断(期望值,真实值)

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值