0

テストにモックとスタブを導入しましたが、すべてうまくいきました。コードをさらにテストするように変更して以来、rspec で次のエラーが発生していますが、エラーが発生する理由が理解できないため、少し壁にぶつかりました。テストしたばかりのときは 16 未満で問題ありませんでしたが、16 を超えるはずのテストを導入すると、次のエラーが発生します。

undefined method `double' for RSpec::ExampleGroups::Hand::PlayAsDealer:Class (NoMethodError)

問題のコードは以下のとおりです。

describe "#play_as_dealer" do 
        it "should hit below 16" do 
            deck = double(:deck, :cards => [Card.new(:clubs, 4), Card.new(:diamonds, 4), Card.new(:clubs, 2), Card.new(:hearts, 6)])
            hand = Hand.new
            2.times { hand.hit!(deck) }
            hand.play_as_dealer(deck)
            expect(hand.value).to eq(16)
        end

        it "should hit above 16"
            deck = double(:deck, :cards => [Card.new(:clubs, 4), Card.new(:diamonds, 4)])
            hand = Hand.new
            2.times { hand.hit!(deck) }
            hand.play_as_dealer(deck)
            expect(hand.value).to eq(17)
4

1 に答える 1

0

2 番目のテストには do がありませんでしたが、問題は解決されました。

it "should hit above 16" do 
            deck = double(:deck, :cards => [Card.new(:clubs, 4), Card.new(:diamonds, 4)])
            hand = Hand.new
            2.times { hand.hit!(deck) }
            hand.play_as_dealer(deck)
            expect(hand.value).to eq(17)
        end
于 2015-01-20T18:18:06.867 に答える