用Ruby来完成脚本任务是很方便的这使得Ruby成为开发测试套件的强有力的候选人直到最近还没有真正独立的用Ruby来测试Java的框架Ola Blini(JRuby团队的成员)和Anda Abramovici开发了JtestR使得开发者可以用Ruby来测试Java
这个项目主要是一些由JRuby集成在一起的Ruby库套件这其中也包括在Ruby领域中非常有名的库RSpec(用于行为驱动开发)mocha(用于mock与stub) dust(描述性程序块语法测试定义descriptive block syntax test definition)测试/单元以及 ActiveSupport (Ruby工具类)
你可以这样写测试用例(RSpec非常聪明)
import javautilHashMap
describe An empty HashMap do
before :each do
@hash_map = HashMapnew
end
it should be able to add an entry to it do
@hash_mapput foo bar
@hash_mapget(foo)should == bar
end
it should return a keyset iterator that throws an exception on next do
proc do
@eratornext
endshould raise_error(javautilNoSuchElementException)
end
end
由于JtestR依赖于JRuby(JRuby正在进行密集的开发)如果你经常运行你的测试你应该建立服务器Ant任务来避免JRuby过长的启动时间(在入门教程中将有进一步的描述)
JtestR目前是版本还处于早期阶段欢迎你的反馈来指导它将来的发展方向