最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
用Mockito测试Java抽象类教程
时间:2015-03-22 编辑:简简单单 来源:一聚教程网
想要测试一个抽象类,有什么好办法可以不用真正继承这个类就可以进行测试吗?如果使用Mockito框架又要怎么做?
我想测试一个抽象类。当然我可以写一个继承这个抽象类的mock。我可以用mocking框架(我在用Mockito),而不是用手写mock来做吗?怎样做?
采纳答案:
以下的建议可以让你不用创建“实际”的子类来测试抽象类 —— Mock就是子类。
使用Mockito.mock(My.class, Mockito.CALLS_REAL_METHODS),然后就可以mock任何被调用的抽象method。
示例:
代码如下 | 复制代码 |
public abstract class My { public Result methodUnderTest() { ... } protected abstract void methodIDontCareAbout(); } public class MyTest { @Test public void shouldFailOnNullIdentifiers() { My my = Mockito.mock(My.class, Mockito.CALLS_REAL_METHODS); Assert.assertSomething(my.methodUnderTest()); } } |
注意:这个方法的美妙之处就是只要抽象methods没有被调用,你就不实现执行他们。
依小弟愚见,这比使用spy更加简洁,因为spy需要实例,也就是说你必须为你的抽象类创建一个可以实例化的子类。
相关文章
- BitmapData类的精确碰撞测试 02-29
- SpringBoot测试配置属性与web启动环境解析 10-24
- vue中将el-switch值true、false改为number类型的1和0解析 10-24
- Vue中的路由配置项meta使用解读 10-24
- SpringBoot自定义bean绑定解析 10-24
- SpringBoot常用计量与bean属性校验和进制数据转换规则解析 10-24