【实习】Mockito + JUnit5 单元测试学习

1.mock一个对象:XXX xxx = Mockito.mock(xxx.class);
or @Mock注解一个**XXX xxx + MockitAnnotations.openMocks(this)**本类内的Mock注解生效。

2.之前使用了method方法,未打桩则方法产生默认值,验证xxx是否用了method方法[2次]:Mockito.verify(xxx,[Mockito.times(2)]).method();

3.方法调用前预设好行为,即打桩,调用某方法返回1:Mockito.when(xxx.method()).thenReturn(1);
打桩抛出Exception异常:Mockito.when(xxx.method()).thenThrow(new Exception());
第一次是mock方法,第二次走真实方法,用Mockito.when(xxx.method()).thenCallRealMethod();

4.断言,很多种,本种是判断是否相等,属于JUnit:Assertions.assertEquals(100, xxx.method());

5.测试开始前操作:@BeforeEach,一般注解方法setup然后MockitAnnotations.openMocks(this)让注解生效;

6.测试结束后操作:@AfterEach;

7.代表真实的实例对象,调用真实的方法,方法内的参数也要是实例的,返回的是原方法,当然也可以打桩返回自己想要的:@Spy

8.mock静态方法需要将先前的mockito-core依赖换成Mockito-inline依赖,后者包含前者,不可同时用。

9.静态方法,使用完之后要关闭,防止多次mockstatic:MockedStatic demo = Mockito.mockStatic(Utils.class), demo.when(() -> Utils.method(1,2)).thenReturn(666);------无参静态方法mockdemo.when(Utils::method).thenReturn(777);

10.向@Spy注解的类中的实例方法中注入@Mock注解修饰的mock:@InjectMocks

11.如果语句中抛出异常throws,我们测试时可以使用try-catch,try中语句符合throws条件,然后进入catch(Exception e),用断言判断是否异常正确,Assertions.assertTrue(e instanceof IOException);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

smile_wuzx

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

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

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

打赏作者

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

抵扣说明:

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

余额充值