- RSpec 教程
- RSpec - 首頁
- RSpec 簡介
- RSpec - 基本語法
- RSpec - 編寫規範
- RSpec - 匹配器
- RSpec - 測試替身
- RSpec - 存根
- RSpec - 鉤子
- RSpec - 標籤
- RSpec - 主題
- RSpec - 輔助方法
- RSpec - 元資料
- RSpec - 過濾
- RSpec - 期望
- RSpec 資源
- RSpec - 快速指南
- RSpec - 有用資源
- RSpec - 討論
RSpec 簡介
RSpec 是 Ruby 程式語言的單元測試框架。RSpec 與傳統的 xUnit 框架(如 JUnit)不同,因為它是一個行為驅動開發 (BDD) 工具。這意味著,用 RSpec 編寫的測試側重於被測試應用程式的“行為”。RSpec 並不強調應用程式的工作原理,而是強調它的行為,換句話說,應用程式實際上做了什麼。
RSpec 環境
首先,您需要在您的計算機上安裝 Ruby。但是,如果您之前沒有安裝過,您可以從 Ruby 官方網站下載並安裝 Ruby − Ruby。
如果您在 Windows 上安裝 Ruby,您應該在這裡找到 Windows 的 Ruby 安裝程式 − http://www.rubyinstaller.org
在本教程中,您只需要文字編輯器(例如記事本)和命令列控制檯。這裡的示例將在 Windows 上使用 cmd.exe。
要執行 cmd.exe,只需單擊“開始”選單並輸入“cmd.exe”,然後按回車鍵。
在 cmd.exe 視窗的命令提示符下,鍵入以下命令以檢視您正在使用的 Ruby 版本 −
ruby -v
您應該看到如下所示的輸出 −
ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]
本教程中的示例將使用 Ruby 2.2.3,但任何高於 2.0.0 的 Ruby 版本都可以。
現在讓我們安裝 Rspec gem。返回您的 cmd.exe 視窗並鍵入以下內容 −
gem install rspec
您應該看到已安裝的依賴 gem 列表,這些是 rspec gem 正確執行所需的 gem。在輸出的末尾,您應該看到類似以下內容 −
Done installing documentation for diff-lcs, rspec-support, rspec-mocks, rspec-expectations, rspec-core, rspec after 22 seconds 6 gems installed
如果您的輸出看起來不太一樣,請不要擔心。此外,如果您使用的是 Mac 或 Linux 計算機,您可能需要使用 sudo 執行 gem install rspec 命令,或者使用 HomeBrew 或 RVM 等工具來安裝 rspec gem。
Hello World
首先,讓我們建立一個目錄(資料夾)來儲存我們的 RSpec 檔案。在您的 cmd.exe 視窗中,鍵入以下內容 −
cd \
然後鍵入 −
mkdir rspec_tutorial
最後,鍵入 −
cd rspec_tutorial
在這裡,我們將建立一個名為 spec 的另一個目錄,透過鍵入以下內容來執行此操作 −
mkdir spec
我們將在該資料夾中儲存 RSpec 檔案。RSpec 檔案稱為“規範”(specs)。如果您覺得這令人困惑,您可以將規範檔案視為測試檔案。RSpec 使用術語“spec”,它是“specification”(規範)的縮寫。
由於 RSpec 是一個 BDD 測試工具,目標是關注應用程式的功能以及它是否遵循規範。在行為驅動開發中,規範通常用“使用者故事”來描述。RSpec 旨在明確目的碼的行為是否正確,換句話說,是否遵循規範。
讓我們回到我們的 Hello World 程式碼。開啟文字編輯器並新增以下程式碼 −
class HelloWorld
def say_hello
"Hello World!"
end
end
describe HelloWorld do
context “When testing the HelloWorld class” do
it "should say 'Hello World' when we call the say_hello method" do
hw = HelloWorld.new
message = hw.say_hello
expect(message).to eq "Hello World!"
end
end
end
接下來,將其儲存到您上面建立的 spec 資料夾中的名為 hello_world_spec.rb 的檔案中。現在回到您的 cmd.exe 視窗,執行此命令 −
rspec spec spec\hello_world_spec.rb
命令完成後,您應該看到如下所示的輸出 −
Finished in 0.002 seconds (files took 0.11101 seconds to load) 1 example, 0 failures
恭喜,您剛剛建立並運行了您的第一個 RSpec 單元測試!
在下一節中,我們將繼續討論 RSpec 檔案的語法。