利用Ruby简化你的Java测试(进阶篇) - 编程入门网
行测试了。上一篇中我介绍了Ruby的测试框架,不过这次,我们学习一个新的测试框架dust,它可以让你以更简洁的方式书写测试:
#测试方法以test开始,后面跟一段具有描述性的字符串,然后在block中完成测试逻辑
将上述代码拷贝至src/test/ruby下,运行mvn test命令,OK,通过了相关测试。非常简单吧!dust甚至让我们不用声明任何类就可以开始工作了,处处都体现着ruby简单、高效的理念! 加速 跑过几次单元测试后,大家一定会发现测试代码是很容易书写,但是跑测试的时间似乎有点长!难道JRuby的性能这么差?其实整个测试过程中启动JRuby花费了很多时间,JtestR框架也考虑的很周到,只需要启动一个本地的测试服务器就可以大大加快测试执行的速度,在shell中执行mvn jtestr:server即可。再跑一次单元测试,速度大大增加了吧! 上面的代码只测试了删除一个不存在的文档,逻辑太过简单,不能说明任何问题,我们继续后面的测试,新增一个文档:
运行测试,居然出错了,TypeError: for method addDocument expected [java.lang.String, [B]; got: [java.lang.String,org.jruby.RubyArray,原来错在cut.addDocument("New Document", [])的方法中我简单传入了[],这是一个Ruby数组对象,将这段代码改成:
重新运行测试,OK,全部通过。在JRuby中进行测试时调用Java对象的方法要注意将Ruby对象转换成Java对象。我们对比一下JUnit的代码
Ruby代码还是稍稍比Java代码简洁一些,虽然优势不明显。我们继续完成后续的测试,增加并改变一个文档:
利用Ruby简化你的Java测试(进阶篇)(3)时间:2011-01-27 infoq 殷安平运行测试,全部通过!请大家注意mock.expects(..).with(..).times(3)这行代码,代码本身似乎就在说我期望这个对象的XXX方法被调用,参数是xx,并且一共被调用了3次。书写简洁,阅读也非常的语义化!这就是我们所说的DSL(Domain Specific Language),mocha就是Ruby在 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |