2010-06-30 52 views
2

我的意思是,哪些工具用於單元測試,對於BDD來說,哪裏有明顯的分歧?哪些測試工具在Ruby中做什麼?

我剛剛從C#學習Ruby,我熟悉的工具有純單元測試/ TDD的xUnit風格,以及用於BDD /集成測試的Cucumber/SpecFlow。當然,如果你願意,你可以使用單元測試工具進行集成測試。

我接觸Ruby的主要測試工具是Test :: Unit,RSpec和Cucumber(顯然還有很多,但它們似乎是最受歡迎的,因此可能是一個很好的選擇, )。

我不在這裏尋找一個長長的工具列表 - 如果有一個主要的競爭者,我錯過了那麼請告訴我,但我寧願保持簡單在這個階段比開始使用'工具Z測試版在MegaChode平臺上運行的Library X擴展「等等。畢竟,我只是一個可憐的.Net小夥子!

很明顯,Test :: Unit是爲單元測試設計的,而Cucumber是爲BDD設計的。但我不確定RSpec - 有些人似乎將它用作低級單元測試工具,而其他用於更高級別的BDD。同時,有些人似乎使用Test :: Unit(以及類似的)和BDD的附加庫。

爲了讓您瞭解我來自哪裏,我看到的方式是您可以使用您的BDD工具編寫更多功能性,可測試的規範(業務員可能會理解),然後執行低級,開發人員關注的TDD與您的單元測試工具一起,爲您實施Cuke(或其他)所需的功能。

在Ruby中做這些事情是否有普遍接受的方式,還是我需要忘記這樣一個瘋狂的概念,並使用似乎做的工作?

乾杯, 格蘭特

回答

4

我想大多數Ruby開發者已經在RSpec的,而不是測試::單位標準化測試。如果你正在做Rails應用程序,那麼就有RSpec-Rails,然後你可以在其上層疊Cucumber。

搶Rspec的書@http://www.pragprog.com/titles/achbd/the-rspec-book

+1

我同意ryw。來自與您相同的c#/測試背景的Grant,您應該發現rspec非常易於使用。它對我如何在C#中進行測試也產生了重大影響。 – 2010-06-30 14:27:29

0

MiniTest副本同時包含的xUnit規範風格測試界面(與他們都在同一個文件的能力相結合)。

它是自Ruby2.2以來的標準寶石的一部分。

兩者都可以包含在同一個文件,可以很容易的樣式或其他測試工具之間的轉換像RSpec的測試::單位

require 'minitest/autorun' 

describe Math do 
    describe 'addition' do 
    it '1+1=2' do 
     (1+1).must_equal 2 
    end 
    end 
end 

class MathTest < Minitest::Test 
    def test_1_plus_1_equal_2 
    assert_equal 2, 1+1 
    end 
end 

MiniTest還包括模擬框架(儘管我更喜歡rr