0

いくつかの RSpec の期待を試してみて、なぜこれが起こるのか疑問に思っています

describe "rspec" do
    class Team
        def players_on
        11
        end
    end

    it "does wierd things" do           
        hometeam1 = Team.new
        hometeam1.should have(11).players_on         
    end
end

RSpec がエラーを表示する

 Failure/Error: hometeam1.should have(11).players_on
       expected 11 players_on, got 8

期待値で 11 を 8 に置き換えると合格します

私のコンピュータに何か問題がありますか???

4

2 に答える 2

3

haveマッチャーの使い方が間違っています。ドキュメントから:

RSpec は、コレクションのサイズに関する予想を簡単に設定できるようにするいくつかのマッチャーを提供します。これらは、コレクションのようなオブジェクトで機能します。オブジェクトは、#sizeまたは#length(または両方) に応答する必要があります。

sizeこれは、オブジェクトに対して/を呼び出すことを意味するlengthため、期待は次と同じです。

hometeam1.players_on.size.should == 11

11.sizeあり8(そう8.should == 11、これはもちろん false です)。代わりに通常のマッチャーを使用する必要があります。

hometeam1.players_on.should == 11
于 2013-07-24T01:25:09.453 に答える
0

これは私がすべきだったことです....

describe "rspec" do
    class Team

        def initialize
            @x = ["tom","dick","harry"]
        end

        def players_on_field
            @x      
        end
    end

    it "does wierd things" do           
        hometeam1 = Team.new
        hometeam1.should have(3).players_on_field        
    end
end
于 2013-07-24T02:59:26.773 に答える