用 Ruby 和 JtestR 来促进 Java 测试

阅读数:97 2008 年 1 月 10 日

话题:JavaRuby语言 & 开发

用 Ruby 来完成脚本任务是很方便的,这使得 Ruby 成为开发测试套件的强有力的候选人。直到最近,还没有真正独立的用 Ruby 来测试 Java 的框架。Ola BliniJRuby 团队的成员)和Anda Abramovici 开发了JtestR,使得开发者可以用 Ruby 来测试 Java。

这个项目主要是一些由 JRuby 集成在一起的 Ruby 库套件。这其中也包括在 Ruby 领域中非常有名的库:RSpec(用于行为驱动开发),mocha(用于 mock 与 stub), dust(描述性程序块语法测试定义,descriptive block syntax test definition),测试 / 单元以及 ActiveSupport (Ruby 工具类)。

你可以这样写测试用例(RSpec 非常聪明):



import java.util.HashMap

describe "An empty", HashMap do



 before :each do

 @hash_map = HashMap.new

 end

 it "should be able to add an entry to it" do

 @hash_map.put "foo", "bar"

  @hash_map.get("foo").should == "bar"

 end

 it "should return a keyset iterator that throws an exception on next" do

 proc do

 @hash_map.key_set.iterator.next

 end.should raise_error(java.util.NoSuchElementException)

 end

end
JtestR 可以作为 Ant 的一个任务,支持与AntbuildrMaven2的集成。

由于 JtestR 依赖于 JRuby(JRuby 正在进行密集的开发),如果你经常运行你的测试,你应该建立服务器 Ant 任务来避免 JRuby 过长的启动时间(在入门教程中将有进一步的描述)。

JtestR 目前是 0.1.1 版本,还处于早期阶段,欢迎你的反馈来指导它将来的发展方向。

查看英文原文Boost your Java Test with Ruby and JtestR