mockito-初始化注解
2016-05-15 13:51
295 查看
参考:http://site.mockito.org/mockito/docs/current/org/mockito/junit/MockitoRule.html
如果想使用@Mock, @Spy, @InjectMocks等注解时,需要进行初始化后才能使用。
初始化的方法有3种:
1,在Junit的类上面使用@RunWith(MockitoJUnitRunner.class)注解。
但如果你使用的是Spring的话,可能你会使用Spring的测试类(@RunWith(SpringJUnit4ClassRunner.class))
这样的话,你就没有办法使用上面的@RunWith(SpringJUnit4ClassRunner.class)。你还可以使用下面的方法。
2,在测试方法被调用之前,使用MockitoAnnotations.initMocks(this);。例如:
@Before
public void initMocks(){
MockitoAnnotations.initMocks(this);
}
@Before保证了在被测试的方法被调用之前,调用@Before所注解的方法
这个方法还有下面的好处。(具体是什么样子还没有试过)
Allows shorthand creation of objects required for testing.
Minimizes repetitive mock creation code.
Makes the test class more readable.
Makes the verification error easier to read because field name is used to identify the mock.
3,使用MockitoRule。如下:
@Rule
public MockitoRule rule = MockitoJUnit.rule();
这个方法会调用validateMockitoUsage方法。这个方法有一些好处,具体什么好处还不太清楚。
如果想使用@Mock, @Spy, @InjectMocks等注解时,需要进行初始化后才能使用。
初始化的方法有3种:
1,在Junit的类上面使用@RunWith(MockitoJUnitRunner.class)注解。
但如果你使用的是Spring的话,可能你会使用Spring的测试类(@RunWith(SpringJUnit4ClassRunner.class))
这样的话,你就没有办法使用上面的@RunWith(SpringJUnit4ClassRunner.class)。你还可以使用下面的方法。
2,在测试方法被调用之前,使用MockitoAnnotations.initMocks(this);。例如:
@Before
public void initMocks(){
MockitoAnnotations.initMocks(this);
}
@Before保证了在被测试的方法被调用之前,调用@Before所注解的方法
这个方法还有下面的好处。(具体是什么样子还没有试过)
Allows shorthand creation of objects required for testing.
Minimizes repetitive mock creation code.
Makes the test class more readable.
Makes the verification error easier to read because field name is used to identify the mock.
3,使用MockitoRule。如下:
@Rule
public MockitoRule rule = MockitoJUnit.rule();
这个方法会调用validateMockitoUsage方法。这个方法有一些好处,具体什么好处还不太清楚。
相关文章推荐
- Angular 全局页面切换动画 me-pageloading
- php (适用于初学者)
- 确定elk中的数据存储的位置-和增加集群节点
- 详细介绍Java内存泄露原因
- wordpress4.5.1去除侧边栏的wordpress.org
- 语句练习题9
- textkit相关做图文混排键盘
- 在Ubuntu14.04下安装vsftp服务器
- ~手机APP:Termux --模拟Linux终端
- XenServer 6.5实战系列:Install Update For XenServer 6.5
- 转义符的一些坑
- RDD的依赖关系
- [疯狂Java]NIO.2:平台无关的文件系统访问支持(Path、Paths、Files)
- 对于合并果子一题方法的研究。
- 数据结构中几种排序算法的Java实现
- hibernate的配置文件的配置
- apache2.4.7虚拟机配置多域名(其中一个是二级域名)
- 第十一周学习进度
- STM32F4学习笔记10——RTC实时时钟
- matlab 画图的坐标设置