`
wh870712
  • 浏览: 39348 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论
文章列表
  因为近来一直在java上进行开发,在单元测试上,公司一直都采用JUnit和Jmock来进行,近来公司想把groovy和gmock引进来做单元测试,所以这段时间一直在看groovy和gmock这2个开源项目,到现在,已经有了一个初步的认识,下面就谈一下自己比较简单的想法吧。 Groovy是一个基于Java虚拟机的敏捷动态语言,可以作为 Java 的补充,它提供了更简单、更灵活的语法,其核心功能包括本地集合、内置正则表达式和闭包,(呵呵,闭包,好东西,看来有不少人讨厌java那个难看的匿名类做法;Groovy支持单元测试和mock,可以简化测试,其提供的GroovyTestCase继承了JUni ...
前言 Groovy 是基于 JRE 的脚本语言( Script ),和Perl,Python等等脚本语言一样,它能以快速简洁的方式来完成一些工作:如访问数据库,编写单元测试用例(Unit Test Case),快速实现产品原型等等。 Groovy 是由James Strachan 和 Bob McWhirter 这两位天才发明的,(JSR 241 2004 年 3 月)。Groovy 完全以Java API为基础,使用了Java开发人员最熟悉的功能和库。Groovy 的语法近似Java,并吸收了 Ruby 的一些特点,因此 Groovy 在某些场合可以扮演一种 “咖啡伴侣”的角色。 ...
Groovy的基础语法 Groovy 的语法融合了 Ruby、Python 和 Smalltalk 的一些最有用的功能,同时保留了基于 Java 语言的核心语法。对于Java 开发人员,Groovy 提供了更简单的替代语言,且几乎不需要学习时间。 语句 Groovy的语句和Java类似,但是有一些特殊的地方。例如语句的分号是可选的。如果每行一个语句,就可以省略分号;如果一行上有多个语句,则需要用分号来分隔。 x = [1, 2, 3] println x y = 5; x = y + 7 println x assert x == 12 另外return关键字在方法的最后是可选的;同样 ...
使用EasyMock 使单元测试更加容易 作者:廖雪峰 单元测试是XP 极力推荐的测试驱动开发模式,是保证软件质量的重要方法。尽管如此,对许多 类的单元测试仍然是极其困难的,例如,对数据库操作的类进行测试,如果不准备好数据库环境以 及相关测试数据,是很难进行单元测试的;再例如,对需要运行在容器内的Servlet 或EJB 组件,脱 离了容器也难于测试。 幸运的是,Mock Object 可以用来模拟一些我们需要的类,这些对象被称之为模仿对象,在单元 测试中它们特别有价值。 Mock Object 用于模仿真实对象的方法调用,从而使得测试不需要真正的依赖对象。Mock Object 只为某个特定的 ...
GMock另一个引人注目的功能就是支持“局部模拟”,即只模拟一个类的某几个方法,而其他方法不变。这是一个非常强大的功能,它让我们在可以享用Mock给我们测试带来便利的同时,又可以保留我们所需要的东西。简直就是“鱼和熊掌兼得”。GMock局部模拟的例子如下: def controller = new SomeController() def mockController = mock(controller) mockController.params.returns([id: 3]) def mockRequest = mock() mockController.request.returns( ...
Groovy <1> 语言特性 前言 Groovy 是基于 JRE 的脚本语言( Script ),是由James Strachan 和 Bob McWhirter 这两位天才发明的,(JSR 241 2004 年 3 月)。 和Perl,Python等等Script的设计初衷一样,作者希望Groovy能快速简洁地完成一些工作:如访问数据库以编写报告,编写单元测试用例(Unit Test Case),快速实现产品原型(ProtoType) 等等。 同时为了降低学习曲线,Groovy 的语法和Java 近似,并吸收了 Ruby,Python 和SmallTalk 的一些特点,因此 ...
单元测试的重要性怎么强调都不为过。在进入正题之前,还是先罗嗦一下单元测试的重要性。 首先,单元测试能够解耦合。这一点不是单元测试的目的,但却是单元测试的结果。为什么呢?因为为了能够使代码能够测试、便于 ...
闭包概念 Groovy语言中闭包(closure)是一个非常重要的概念,而且深入的理解了闭包对充分用好Groovy有很大帮助。对闭包比较书面的一种解释“闭包是可以用作函数参数和方法参数的代码块”。其实Groovy的闭包更象是一个“代码块”或者方法指针,代码在某处被定义然后在其后的调用处执行。 现在支持闭包的语言有 Scheme、Common Lisp、Smalltalk、Groovy、JavaScript、Perl,Ruby 和 Python 。 闭包基础 来看一个例子: def square = {it * it} // 定义一个叫square的闭包。it是默认的 参数名称 asse ...
GMock是groovy环境下的mock解决方法。使用它可以很轻松的完成groovy的单元测试工作。它能够很好的模拟对象,辅助Junit完成单元测试。   下面,就先来看一下最简单的使用的GMock代码,然后在给出详细的说明。 1. @WithGMock 2. publi ...
这里的单元测试主要是需要mock掉数据库的方法, 如果是结合数据库回滚处理的集成测试不在讨论范围内. 在spring中我们使用事务通常有两种方式: 一种是采用aop的声明式事务, 一种是采用事务模板(TransactionTemplate), 对两种使用方式各有各的利弊, 这里不展开讨论, 我们通常采用第二种方式, 一般的写法也是比较template式的: Java代码 getTemplate(...).execute(new TransactionCallback() {               public Object doInTransaction(final Transac ...
在一些简单的测试场景下, 可以采用闭包加"as"关键字来实现我们需要mock的对象. 这种做法针对"面向接口编程"和"依赖注入"非常有效. 比如有这样的接口: Java代码 interface Logger { def log(message) }    interface Helper { def doSomething(param) }    interface Factory { Helper getInstance() }   interface Logger { def log(message) } inte ...
作为测试的基本概念,在开发测试中经常遇到mock和stub。之前认为自己对这两个概念已经很明白了,但是当决定要写下来并写清楚以便能让不明白的人也能弄明白,似乎就很有困难。     试着写下此文,以检验自己是不是真的 ...
单元测试的重要性怎么强调都不为过。在进入正题之前,还是先罗嗦一下单元测试的重要性。   首先,单元测试能够解耦合。这一点不是单元测试的目的,但却是单元测试的结果。为什么呢?因为为了能够使代码能够测试、便于测试,需要将被测试代码与其它代码分离。这样,就必须就导致了被测试代码与其它代码的解耦合。无形中也提高了代码的可测试性。   其次,单元测试是重构的基础。没有单元测试,就没有重构。任何人都不敢对没有测试代码的代码进行修改,因为不能确定所作出的修改是否有副作用(无形中引入bug)。   第三,单元测试能够优化设计。为什么这样说呢?因为单元测试首先考虑的类和方法的外部特性。也就是从接口使用者的角 ...
Groovy入门教程 杨宏焱  2009-5-13 一、groovy是什么 简单地说,Groovy 是下一代的java语言,跟java一样,它也运行在 JVM 中。 作为跑在JVM中的另一种语言,groovy语法与 Java 语言的语法很相似。同时,Groovy 抛弃了java烦琐的文法。同样的语句,使用groovy能在最大限度上减少你的击键次数——这确实是“懒惰程序员们”的福音。 二、开发环境 1、  jdk 1.5以上 2、  eclipse+groovy plugin(支持Groovy 1.5.7) 打开eclipse,通过Software Updates > ...
因为近来一直在java上进行开发,在单元测试上,公司一直都采用JUnit和Jmock来进行,近来公司想把groovy和gmock引进来做单元测试,所以这段时间一直在看groovy和gmock这2个开源项目,到现在,已经有了一个初步的认识,下面就谈一下自己比较简单的想法吧。 Groovy是一个基于Java虚拟机的敏捷动态语言,可以作为 Java 的补充,它提供了更简单、更灵活的语法,其核心功能包括本地集合、内置正则表达式和闭包,(呵呵,闭包,好东西,看来有不少人讨厌java那个难看的匿名类做法;Groovy支持单元测试和mock,可以简化测试,其提供的GroovyTestCase继承了JUnit的 ...
Global site tag (gtag.js) - Google Analytics