0
我有一個井字遊戲拖這種方法的一個部分:RSpec的測試方法
def start(token)
if token == "X"
puts "#{@player1}: Please enter a number for your X to go"
elsif token == "O"
puts "#{@player2}: Please enter a number for your O to go"
end
player_input = STDIN.gets.chomp
locate_player_input(token, player_input)
end
我只是想測試一下,看看是否正確的事情是puts'd到終端。我有這樣的測試:
describe "#start" do
context "X player's turns" do
it "prints proper messege" do
expect(STDOUT).to receive(:puts).with("Harry: Please enter a number for your X to go")
game.start("X")
end
end
end
但是我有一種感覺,game.start(「X」)線是啥也不做這項工作。我如何編寫測試來檢查puts語句是否正確輸出?
重構建議:不要使用'if','else',只使用'puts'#{@ player2}:請爲您的#{token}輸入一個數字「'。 – lwassink
好看。感謝您的建議,我肯定會在我開始重構時執行它 –
測試失敗了嗎?什麼是失敗信息? – Johnson