阅读更多

8顶
0踩

编程语言

原创新闻 Gmock 0.7.0 发布

2009-03-22 10:14 by 见习记者 JohnnyJian 评论(3) 有5628人浏览
Gmock是一个基于Groovy语言的mock框架。Gmock利用了Groovy语言的特性,提供了简洁可读的语法,并且用Gmock mock出来的对象可以在Java代码中使用,所以你可以使用Java编写代码而使用Groovy和Gmock编写测试。

本版本加入了以下特征:

1. 设定方法调用的严格顺序(strict ordering)。这是通过ordered闭包实现的。下面是一个被缓存的数据库的例子:

def database = mock()
def cache = mock()
ordered {
  database.open()
  cache.get("select * from cat").returns(null)
  database.query("select * from cat").returns(["cat1", "cat2"])
  cache.put("select * from cat", ["cat1", "cat2"])
  database.close()
}
play {
  ...
}


2. 只mock一个对象的部分方法(partial mocking)。这可以通过对一个已有对象调用mock()方法来实现。下面是mock一个grails的controller的例子:

def controller = new SomeController()
mock(controller).params.returns([id: 3])
play {
   assertEquals 3, controller.params.id
}


3. 支持使用正则表达式作为方法名字。例如:

def mock = mock()
mock./set.*/(1).returns(2)
play {
  assertEquals 2, mock.setSomething(1)
}


Gmock 0.7.0是最后一个支持Groovy 1.5.x的版本,下一个版本开始将只支持Groovy 1.6.x。

更详细的信息请访问http://gmock.org/http://code.google.com/p/gmock/
8
0
评论 共 3 条 请登录后发表评论
3 楼 JohnnyJian 2009-03-22 16:24
amonlei 写道

动态语言其实没必要mock,只要调用前,hack掉原来的实现,返回一个值便可

的确可以hack,不过比较写起来比较麻烦,gmock就是为了简化这些mock的过程。
譬如,如果是hack的话,你得这样写:
something.metaClass.fun = { a, b ->
  assert 1 == a
  assert 2 == b
  return 3
}
而用gmock的话,你只需要这样写:
mock(something).fun(1, 2).returns(3)
2 楼 whaosoft 2009-03-22 13:31
sun被收购了
是不是我该学这个东西了 看好像很火的样子
1 楼 amonlei 2009-03-22 11:11
动态语言其实没必要mock,只要调用前,hack掉原来的实现,返回一个值便可

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • frameset tiles之比较和最佳选择

    首先我要说明一下,下面的内容是基于同学们了解frameset和tiles的基础上描述的。 我们布局页面的时候,经常在是采用frameset还是tiles中摇摆。 首先举个布局页面的例子:在这个例子中,有banner、header、main和...

  • Apache Tiles 学习(一)、复合视图模式

    摘要: 项目需要使用Apache Tiles,现在学习下并留下相关记录,以待或续查看及大家相互学习! Apache Tiles 是什么? A free open-sourced templating framework for modern Java applications. Based upon ...

  • Tiles入门及项目实战

     Apache Tiles是一个模板布局框架。最初是为了简化Web应用界面开发,如今已不限于JavaEE Web环境。  Tiles允许开发人员定义页面片段,它们在运行时会组装成一个完整的页面。这些片段,或者叫“瓷砖”(tiles本意即...

  • tiles-defs.xml 文件的基本用法

    如果大多数页面的布局基本相同我们甚至可以使用一个jsp文件根据不同的参数调用不同的body. 二:Tiles配置和基本配置文件介绍 Tiles有一个配置文件:tiles-defs.xml tiles-defs.xml定义了每一个页面的组成元素和形式。...

  • Struts框架中 's Tiles使用入门教程

    Struts框架中 s Tiles使用入门教程Tiles使用入门 作者:孤魂一笑 一:说明Struts1.1以后增加了Tiles包使得struts在页面的处理方面多了一种选择.并且更容易实现代码的重用。Tiles中对页面的划分有点象jakarta的另外一...

  • Tiles配置

    一:说明Struts1.1以后增加了Tiles包使得struts在页面的处理方面多了一种选择.并且更容易实现代码的重用。Tiles中对页面的划分有点象jakarta的另外一个项目Turbine中的TDK。增加了layout的概念.其实就是把一个页面...

  • Struts 's Tiles使用入门

    Tiles使用入门 作者:孤魂一笑 一:说明Struts1.1以后增加了Tiles包使得struts在页面的处理方面多了一种选择.并且更容易实现代码的重用。Tiles中对页面的划分有点象jakarta的另外一个项目Turbine中的TDK。增加了...

  • struts1.2中的tiles-defs.xml 文件的基本用法

    Struts1.1以后增加了Tiles包使得struts在页面的处理方面多了一种选择.并且更容易实现 代码的重用。 Tiles中对页面的划分有点象jakarta的另外一个项目Turbine中的TDK。增加了layout的概念. 其实就是把一个页面划分...

  • 在CSS布局中让Floats轻拂

    为什么不停止使用浮点数而去掉复杂度呢? Here’s a collection of CSS properties and values that have been avoided in the past due to boring compatibility issues, but are now widely enough supported ...

  • 关于布局

    写jsp的布局方式有不少,就我所知,我们可以通过frameset,tiles,iframe,SiteMesh来实现。 我在写网页的时候大多是用的前面两种,后面的基本是很少用的。不过SiteMesh的强大之处还是值得大家去体验。最近越来越...

  • sitemesh 使用感受

    从.net转java web做项目不让用iframe,这时我考虑换一个布局框架去用,比较成熟通用的目前是Tiles和siteMesh框架,Tiles是阿帕奇开发出来的,这一点大家都会感觉比较可靠毕竟这家公司短时间不会倒...

  • Html

    宽度可以使用:点阵,%,*,可以混合使用。但是*只能使用一次。 案例: < frameset rows = "100,*,20%" border = "0" > < frameset rows = "10%,*,10%" border = "0" > 纵向分区属性:将页面按纵向分区。...

  • thymeleaf学习总结

    1.什么是thymeleaf Thymeleaf是现代化服务器端的Java页面模板引擎,不同于JSP和FreeMarker,Thymeleaf的语法更加接近HTML Thymeleaf是面向Web和独立环境的现代服务器端Java模板引擎。 Thymeleaf的主要目标是为您的...

  • java基础 - 2

    JAVA编程语言和JDBC 编写正确且遵守规范的Java程序,可以无需重新编译就在任何启用Java技术的平台上运行。Java编程语言彻底地进行了规定。...JAVA编程语言和JDBC一起使用,可以给编写数据库应用程序提供正确

  • qtz40塔式起重机总体及塔身有限元分析法设计().zip

    qtz40塔式起重机总体及塔身有限元分析法设计().zip

  • elasticsearch-8.17.4-windows-x86-64.zip

    Elasticsearch是一个基于Lucene的搜索服务器

  • 《基于YOLOv8的核废料处理机器人导航避障系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

  • 谷歌地图数据采集: 美国 纽约 HVAC Contractor (暖通空调承包商) 数据示例

    美国纽约HVAC(暖通空调)数据示例,谷歌地图数据包括:时间戳、名称、类别、地址、描述、开放网站、电话号码、开放时间、更新开放时间、评论计数、评级、主图像、评论、url、纬度、经度、地点id、国家等。 在地理位置服务(LBS)中,谷歌地图数据采集尤其受到关注,因为它提供了关于各种商业实体的详尽信息,这对于消费者和企业都有极大的价值。本篇文章将详细介绍美国纽约地区的HVAC(暖通空调)系统相关数据示例,此示例数据是通过谷歌地图抓取得到的,展示了此技术在商业和消费者领域的应用潜力。 无需外网,无需任何软件抓取谷歌地图数据:wmhuoke.com

  • 2023-04-06-项目笔记 - 第四百五十五阶段 - 4.4.2.453全局变量的作用域-453 -2025.04-01

    2023-04-06-项目笔记-第四百五十五阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.453局变量的作用域_453- 2025-04-01

  • 1_实验三 扰码、卷积编码及交织.ppt

    1_实验三 扰码、卷积编码及交织.ppt

Global site tag (gtag.js) - Google Analytics