Gmock 0.5.0 发布
程序员文章站
2022-04-03 10:41:30
...
Gmock是一个基于Groovy语言的mock框架。与Java的各种mock框架相比,Gmock利用了Groovy语言的特性,提供了更精简、更可读的语法。而与Groovy的官方解决方案——MockFor类——相比,除了更精简和可读的语法之外,用Gmock mock出来的对象是可以在Java代码中使用的,所以你可以使用Java编写代码而使用Groovy和Gmock编写测试。
入门
首先,你的测试类需要继承org.gmock.GMockTestCase。然后,使用mock()方法创建mock对象,并且只需要直接在mock对象上调用方法即可设定预期行为:
特性
例子
一个完整的例子:
网址
官方网站:http://gmock.org/
源代码:http://code.google.com/p/gmock/
入门
首先,你的测试类需要继承org.gmock.GMockTestCase。然后,使用mock()方法创建mock对象,并且只需要直接在mock对象上调用方法即可设定预期行为:
def mockLoader = mock() // 需要使用强类型时可以这样: // Loader mockLoader = mock(Loader) mockLoader.load("fruit").returns("apple")最后,在play闭包中执行你的测试:
void testBasic(){ // 创建mock对象和设定预期行为 play { // 运行你的代码 } }
特性
- 方法调用:mockLoader.load("fruit").returns("apple")
- 抛出异常:mockLoader.load("unknown").raises(new RuntimeException()) 或 mockLoader.load("unknown").raises(RuntimeException)
- stub:mockLoader.load("fruit").returns("apple").stub()
- 静态方法:mockMath.static.random().returns(0.5)
- 属性:mockLoader.name.returns("loader")
- 构造函数:def mockFile = mock(File, constructor('/a/path/file.txt'))
- 预期调用次数:mockLoader.load("fruit").returns("apple").atLeastOnce()
- 自定义匹配器:mockLoader.load(match { it.startsWith("fru") })
- 支持Hamcrest匹配器:mockLoader.put("test", is(not(lessThan(5))))
- 如果你的测试类不能继承GMockTestCase,那么请使用GMockController类
例子
一个完整的例子:
import org.gmock.GMockTestCase class LoaderTest extends GMockTestCase { void testLoader(){ def mockLoader = mock() mockLoader.load('key').returns('value') play { assertEquals "value", mockLoader.load('key') } } }
网址
官方网站:http://gmock.org/
源代码:http://code.google.com/p/gmock/
下一篇: ES6之set-map数据结构的实例详解
推荐阅读
-
Asp.net core利用MediatR进程内发布/订阅详解
-
Python实现批量将word转html并将html内容发布至网站的方法
-
小米小盒子正式发布 售价199元
-
Visual Studio 2016 Preview 3版本发布下载
-
Android编程之ListView和EditText发布帖子隐藏软键盘功能详解
-
元年科技正式发布“元年C1智答”智能数据分析平台
-
元年科技正式发布“元年C1智答”智能数据分析平台
-
解读ASP.NET 5 & MVC6系列教程(3):项目发布与部署
-
基于vue如何发布一个npm包的方法步骤
-
2015.10.19小米次世代新品发布会直播 小米电视3发布会图文直播