用 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 java.util.HashMap<p>describe "An empty", HashMap do</p><br></br> before :each do<br></br> @hash_map = HashMap.new<br></br> end<br></br> it "should be able to add an entry to it" do<br></br> @hash_map.put "foo", "bar"<br></br> @hash_map.get("foo").should == "bar"<br></br> end<br></br> it "should return a keyset iterator that throws an exception on next" do<br></br> proc do<br></br> @hash_map.key_set.iterator.next<br></br> end.should raise_error(java.util.NoSuchElementException)<br></br> end<br></br>end
JtestR 可以作为 Ant 的一个任务,支持与 Ant , buildr 和 Maven2 的集成。由于 JtestR 依赖于 JRuby(JRuby 正在进行密集的开发),如果你经常运行你的测试,你应该建立服务器 Ant 任务来避免 JRuby 过长的启动时间(在入门教程中将有进一步的描述)。
JtestR 目前是 0.1.1 版本,还处于早期阶段,欢迎你的反馈来指导它将来的发展方向。
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论