Mockito备忘

@spy 和 @mock 区别

spy的情况是会创建一个真实实例,方法都是真实的,而mock 创建的实例,方法都是虚的,否返回null之类的默认值。

如果@spy再加上 @InjectMocks 那么,那么表示 对象中的属性对象(一些用@resource标记的对象)需要从@spy时上下文中,给出这些属性的对象,否则会是null的。

@spy的对象上,要改动某个方法不能这样
when(user.get(2)).thenreturn(null),这样会真的发起一个get的方法调用

而应该这样用:

doreturn(null).when(user).get(2);

猜你喜欢

转载自kangzye.iteye.com/blog/2382599
今日推荐