在筆者開發(fā)的系統(tǒng)中,有大量的數(shù)據(jù)需要分析,不僅要求數(shù)據(jù)分析準(zhǔn)確,而且對(duì)速度也有一定的要求的。沒有寫測(cè)試代碼之前,筆者用幾個(gè)很大的方法來(lái)實(shí)現(xiàn)這種需求。結(jié)果可想而知,代碼繁雜,維護(hù)困難,難于擴(kuò)展。借業(yè)務(wù)調(diào)整的機(jī)會(huì),筆者痛定思痛,決定從測(cè)試代碼做起,并隨著不斷地學(xué)習(xí)和應(yīng)用,慢慢體會(huì)到測(cè)試代碼的好處。
環(huán)境搭建
筆者采用的測(cè)試環(huán)境是比較流行通用的框架:RSpec + Factory Girl,并用autotest自動(dòng)工具。RSpec是一種描述性語(yǔ)言,通過(guò)可行的例子描述系統(tǒng)行為,非常容易上手,測(cè)試用例非常容易理解。Factory Girl可以很好的幫助構(gòu)造測(cè)試數(shù)據(jù),免去了自己寫fixture的煩惱。Autotest能自動(dòng)運(yùn)行測(cè)試代碼,隨時(shí)檢測(cè)測(cè)試代碼的結(jié)果,并且有很多的插件支持,可以讓測(cè)試結(jié)果顯示的很炫。
第一步 安裝rspec和rspec-rails
在命令行中執(zhí)行如下命令:
$ sudo gem install rspec v = 1.3.0$ sudo gem install rspec-rails v = 1.3.2
安裝完成后,進(jìn)入rails應(yīng)用所在的目錄,運(yùn)行如下腳本,生成spec測(cè)試框架:
$ script/generate rspec exists lib/tasks identical lib/tasks/rspec.rake identical script/autospec identical script/spec exists spec identical spec/rcov.opts identical spec/spec.opts identical spec/spec_helper.rb
第二步 安裝factory-girl
在命令行中執(zhí)行如下命令:
$ sudo gem install rspec v = 1.3.0$ sudo gem install rspec-rails v = 1.3.2
安裝完成后,進(jìn)入rails應(yīng)用所在的目錄,運(yùn)行如下腳本,生成spec測(cè)試框架:
$ script/generate rspec exists lib/tasks identical lib/tasks/rspec.rake identical script/autospec identical script/spec exists spec identical spec/rcov.opts identical spec/spec.opts identical spec/spec_helper.rb
第二步 安裝factory-girl
在命令行中執(zhí)行如下命令:
$ sudo gem install factory-girl
在config/environment/test.rb中,加入factory-girl這個(gè)gem:
config.gem "factory_girl"
在spec/目錄下,增加一個(gè)factories.rb的文件,用于所有預(yù)先定義的model工廠。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注