2012-03-01 43 views
2

我知道如何在其他語言中使用TDD,但我對ruby和錯誤都很陌生。我正在爲如何設置(玩具)項目的基本原理而苦苦掙扎。我想寫一個計算階乘的方法(n! = 1 * 2 * 3 * ... * n)。我已經創建了文件test/factorial_test.rb,迄今包含如何用ruby啓動tdding並出錯?

require 'wrong' 
include Wrong 

如何從這裏着手?我是否在全球範圍內寫下我的斷言

assert { factorial(1) == 1 } 
assert { factorial(2) == 2 } 
#... 

(這感覺有點奇怪)?或者我應該遵循一些(哪個?)約定,並在其自己的方法包裝每個測試

def one_factorial_should_be_one 
    assert { factorial(1) == 1 } 
end 

我有點這裏的基本面丟失,所以在什麼被認爲是這裏的最佳實踐的任何答覆是高度讚賞。

回答

1

Wrong僅僅提供了一對(確定是聰明的)斷言方法。您仍然需要一個框架來自動運行測試,例如minitest

1

您可以從包含在標準庫中的minitest測試框架開始。它直接使用assert更高效且更簡單。

1

有在Ruby中提供了一些測試框架

  • 測試::單位
  • MINITEST
  • rspec的
  • 早該 - 類似RSPEC
  • 黃瓜 - 一個BDD測試框架

基本的Ruby測試框架是T EST ::單位。一個簡單的例子如下所示:

require 'test/unit' 
class MyTest < Test::Unit::TestCase 
    def test_equality 
    assert_equal(1,1) 
    end 
end 

最近MINITEST被納入Ruby的標準庫,所以如果你想使用這個庫,你不必安裝任何東西。一個簡單的最小規格看起來如下:

require 'minitest/autorun' 
describe Factorial do 
    it "should provide factorial of 1 as 1" do 
    factorial(1).must_equal 1 
    end 
end