rails 自動化單元測試,是 rails 專案足夠大之後,必備流程。rails 社群流行的測試工具是——rspec
rails new rails_test
cd rails_test
git init
git commit -m
"first commit"
git checkout -b ch01
終端執行gem install rspec
新增乙個檔案 .rspec,內容如下:
--format documentation
--color
單元測試需求
輸入乙個數字,範圍在1到100。遇到數字為3的倍數的時候,返回「fizz」替代數字;遇到5的倍數,返回「buzz」代替數字;遇到7的倍數,返回「zoo」代替數字;既是3的倍數又是5的倍數,返回「fizzbuzz」;既是3的倍數又是7的倍數,返回「fizzzoo」;既是5的倍數又是7的倍數,返回「buzzzoo」;
建立被測試檔案number.rb
def number_text(x)
ifx%3 == 0 && x
%5 == 0
"fizzbuzz"
elsif
x%3 == 0 && x
%7 == 0
"fizzzoo"
elsif
x%5 == 0 && x
%7 == 0
"buzzzoo"
elsif
x%3 == 0
"fizz"
elsif
x%5 == 0
"buzz"
elsif
x%7 == 0
"zoo"
else
x end
end
建立測試檔案number_spec.rb
require_relative './number'
describe "number_spec"
doit
"9 is fizz"
doresult = number_text(9)
expect(result).to eq("fizz")
endit
"21 is fizzzoo"
doresult = number_text(21)
expect(result).to eq("fizzzoo")
endit
"45 is fizzbuzz"
doresult = number_text(45)
expect(result).to eq("fizzbuzz")
endit
"55 is buzz"
doresult = number_text(55)
expect(result).to eq("buzz")
endit
"35 is buzzzoo"
doresult = number_text(35)
expect(result).to eq("buzzzoo")
endit
"77 is zoo"
doresult = number_text(77)
expect(result).to eq("zoo")
endit
"88 is 88"
doresult = number_text(88)
expect(result).to eq(88)
endend
終端執行rspec number_spec.rb
單元測試 單元測試文章收藏
前言 前段時間公司計畫做自動化測試,自己也打算圍繞幾個點做相關調研,現在想想呢?其實對自動化測試的概念都還不是十分清晰,當時主要還是圍繞 單元測試 向qa小夥伴學習了一段時間,現由於公司重組,學習中斷,這裡簡單記錄一些單元測試好文,留待後續參考.什麼叫自動化測試?自動化測試覆蓋率?覆蓋率如何做到的?...
單元測試之Django單元測試
每個應用,自帶tests.py 整合在django的專案檔案裡,更多是開發人員寫django自動的測試執行 3.1 前後置方法執行特點 django.test.testcase類主要由前 後置處理方法和test開頭的方法組成 特點 繼承於django.test.testcase 測試用例都是test...
單元測試(三) 建立多執行緒單元測試
junit本是不支援多執行緒的,乙個單元測試case主程序跑完,其他new出來的執行緒都會gg思密達。此篇mark乙份在junit中執行多執行緒的方法。net.sourceforge.groboutils groboutils core 5test slf4j public class device...