用Ruby來(lái)完成腳本任務(wù)是很方便的,這使得Ruby成為開(kāi)發(fā)測(cè)試套件的強(qiáng)有力的候選人。 直到最近,還沒(méi)有真正獨(dú)立的用Ruby來(lái)測(cè)試Java的框架。Ola Blini(JRuby團(tuán)隊(duì)的成員)和Anda Abramovici開(kāi)發(fā)了JtestR,使得開(kāi)發(fā)者可以用Ruby來(lái)測(cè)試Java。 這個(gè)項(xiàng)目主要是一些由JRuby集成在一起的Ruby庫(kù)套件。這其中也包括在Ruby領(lǐng)域中非常有名的庫(kù): RSpec(用于行為驅(qū)動(dòng)開(kāi)發(fā)),mocha(用于mock與stub), dust(描述性程序塊語(yǔ)法測(cè)試定義,descriptive block syntax test definition),測(cè)試/單元以及 ActiveSupport (Ruby工具類(lèi))。 你可以這樣寫(xiě)測(cè)試用例(RSpec非常聰明): 你可以這樣寫(xiě)測(cè)試用例(RSpec非常聰明): import java.util.HashMapdescribe "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) endend JtestR可以作為Ant的一個(gè)任務(wù),支持與Ant,buildr和Maven2的集成。 由于JtestR依賴(lài)于JRuby(JRuby正在進(jìn)行密集的開(kāi)發(fā)),如果你經(jīng)常運(yùn)行你的測(cè)試,你應(yīng)該建立服務(wù)器Ant任務(wù)來(lái)避免JRuby過(guò)長(zhǎng)的啟動(dòng)時(shí)間(在入門(mén)教程中將有進(jìn)一步的描述)。
JtestR目前是0.1.1版本,還處于早期階段,歡迎你的反饋來(lái)指導(dǎo)它將來(lái)的發(fā)展方向。
|