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 檔案的語法。

廣告
© . All rights reserved.