2012-03-01 7 views
2

私は他の言語でTDDを行う方法を知っていますが、私はルビーと間違っていることを初めて知っています。私は、(おもちゃ)プロジェクトをセットアップする方法の基本について少し苦労しています。私は階乗(n! = 1 * 2 * 3 * ... * n)を計算する方法を書いたがっています。私はこれまでのところ、私はここから続行するにはどうすればよいruby​​で間違ってtddingを開始するには?

require 'wrong' 
include Wrong 

を含むファイルtest/factorial_test.rbを、作成していますか?私はアサーションをファイルのグローバルスコープに書いていますか?

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の
  • shoulda - BDDのテストフレームワーク
から
  • キュウリをRSPECに類似

    基本的なRubyのテストフレームワークは、Tでありますest :: Unit。次のように単純な例が見えます:

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

    最近MinitestはRubyの標準ライブラリに組み込まれたので、あなたは、このライブラリを使用したい場合、あなたは何をインストールする必要はありません。次のように簡単なminitestスペックに見える:

    require 'minitest/autorun' 
    describe Factorial do 
        it "should provide factorial of 1 as 1" do 
        factorial(1).must_equal 1 
        end 
    end 
    
  • 関連する問題