【todo】mockito使用初探

写单元测试时,为了要覆盖到一些条件分支或者一些数据必须在生产环境中才能获得,比如数据库的一些操作,不得不“入侵”这个类,使一些方法的返回值成为我们的期望的返回值,要“入侵”类就要使mock,Mockito是几个常用mock框架中的一种。

作用

缺点:据说无法mock静态方法、和方法内部new出来的实例的行为

实践

模拟期望的结果

背景,想对class B进行测试,但是,class B注入了class A的单例,因此,测试时要为B注入A的单例!

class Hahaha{
//在某class内部
	@mock //用这种注解,就不需要每次都手动A mock_a = mock(A.class);
	A mock_a; //使用注解的方式mock了一个虚拟类的实例,自动new了一个出来,无法调用真实代码,行为完全由自己控制

	@Injectmocks //同样,自动new了一个,但是可以调用真实代码的方法,比如,使用注入的单例
	B mock_b;  	//其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中,上面mock出来的class A的单例就被
	
	@Test
	public void testSth(){
		MockitoAnnotations.initMocks(this); //或者整个Hahaha类注解“@RunWith(MockitoJUnitRunner.class)”,new mocks
		when(mock_a.isRight(anyString())).thenReturn(true);//规定这个虚拟单例的行为,为class B的测试打下基础
	}
}

要点:@Mock,@InjectMocks,when().thenReturn()


参考

https://www.cnblogs.com/Ming8006/p/6297333.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值