在筆者開發的系統中,有大量的數據需要分析,不僅要求數據分析準確,而且對速度也有一定的要求的。沒有寫測試代碼之前,筆者用幾個很大的方法來實現這種需求。結果可想而知,代碼繁雜,維護困難,難于擴展。借業務調整的機會,筆者痛定思痛,決定從測試代碼做起,并隨著不斷地學習和應用,慢慢體會到測試代碼的好處。
環境搭建
筆者采用的測試環境是比較流行通用的框架:RSpec + Factory Girl,并用autotest自動工具。RSpec是一種描述性語言,通過可行的例子描述系統行為,非常容易上手,測試用例非常容易理解。Factory Girl可以很好的幫助構造測試數據,免去了自己寫fixture的煩惱。Autotest能自動運行測試代碼,隨時檢測測試代碼的結果,并且有很多的插件支持,可以讓測試結果顯示的很炫。
第一步 安裝rspec和rspec-rails
在命令行中執行如下命令:
$ sudo gem install rspec v = 1.3.0$ sudo gem install rspec-rails v = 1.3.2
安裝完成后,進入rails應用所在的目錄,運行如下腳本,生成spec測試框架:
$ 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
在命令行中執行如下命令:
$ sudo gem install rspec v = 1.3.0$ sudo gem install rspec-rails v = 1.3.2
安裝完成后,進入rails應用所在的目錄,運行如下腳本,生成spec測試框架:
$ 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
在命令行中執行如下命令:
$ sudo gem install factory-girl
在config/environment/test.rb中,加入factory-girl這個gem:
config.gem "factory_girl"
在spec/目錄下,增加一個factories.rb的文件,用于所有預先定義的model工廠。
新聞熱點
疑難解答