2009-07-31 9 views
5

これは簡単な質問のようですが、どこでも答えは見つかりません。defやtestキーワードでレールテストを書くべきですか?

test "the truth" do 
    assert true 
    end 

または

def the_truth 
    assert true 
    end 

新しい材料は最初の方法をテスト書き込みますが、私はできないようだ。私は、一般的には、ルビーon Railsのアプリでのテストのように書くことができることに気付きましたこれには理由があるようです。 1つは他の人よりも好意的ですか?もう1つ正しいですか?ありがとう。

答えて

8

短縮された短いテスト名から長い文章のようなテスト名に移行してきました。これは部分的にはRSpecの普及とテストがスペックであり、記述的でなければならないという概念のためです。

わかりやすいテスト名が好きな場合は、testメソッドをお勧めします。私はそれがより読みやすいと思う。

test "should not be able to login with invalid password" do 
    #... 
end 

def_should_not_be_able_to_login_with_invalid_password 
    #... 
end 

また、説明は文字列であるため、任意の文字を含むことができます。 defでは、使用できる文字数が制限されています。

+0

'test'メソッドはRspecや他のライブラリの一部ですか? – Pithikos

2

最初の方法はRails 2.2から実装されていると思います。 私が知っている限り、あなたのコードの読みやすさを向上させるだけです(テスト中にdefがどのような関数でも使用できるので)。 幸運を祈る!

-1

RSpecまたはCucumberのいずれかを使用してテストすることをおすすめします。私は両方のアプリケーションをすべてテストするために両方を使用します。 RSpecはモデルとコントローラをテストするために使用され、Cucumberはビューを(付属のWebrat機能を介して)テストします。

0

Mike Trpcicが提案するように、RSpecとCucumberをチェックアウトする必要があります。私はあなたにも見てとる必要があることを追加したい:

Shouldaはのための簡潔なユニットテストを書くためのマクロフレームワークですあなたのモデル/コントローラー、2番目はフィクスチャの代わりです。

関連する問題