Rails 單元測試

2021-08-16 19:37:29 字數 1893 閱讀 2663

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...