インスタンス変数が特定の値に等しいかどうかをチェックするためのテストを作成するときに、特定のメソッドを呼び出す必要があります。 、そうすべきではない。私は、インスタンス変数、0に初期化され@counter、およびこれらのメソッドを持っている:1つのメソッドが別のメソッドを呼び出すかどうかを調べる
def increment_counter
@counter += 1
if @counter == 9
tie_game?
end
end
def tie_game?
puts "The game was a tie. Nicely played #{@player1} & #{@player2}!"
play_again
end
私は@counterが9に等しい場合、そのtie_gameをことを確認するためのテストを書きたいですか?それが9より小さい時は呼び出されません。
これは私が思い付くことができるものであるが、それは間違っている:
describe "increment_counter" do
context "counter equals 9" do
it "calls tie_game?" do
game.instance_variable_set(:@counter, 9)
expect(increment_counter).to receive(:tie_game?)
end
end
end
あなたの助言に感謝します。これは動作しているようですが、ターミナルで実行すると、失敗したことを知らせる前にplay_againメソッドが実行されます。あなたがそれをしないことをどうやって確認しなければならないか知っていますか? –