Ich habe diese Methode für ein tic tac Schlepptau Spiel:rspec einen einzelnen Teil eines Verfahrens zu testen
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
Ich versuche nur, um zu sehen, zu prüfen, ob die richtige Sache an das Endgerät puts'd ist. Ich habe diesen Test:
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
Aber ich habe eine der game.start Gefühl („X“) Linie ist das, was diese Arbeit nicht macht. Wie kann ich den Test schreiben, um einfach zu überprüfen, ob die puts-Anweisung korrekt ausgegeben wird?
Ein Refactoring-Vorschlag: anstelle des 'if',' else', benutze einfach 'puts' # {@ player2}: Bitte gib eine Nummer für deinen # {token} ein, um '' zu gehen. – lwassink
gutes Aussehen. Danke für den Vorschlag, ich werde sicher sein, es zu implementieren, wenn ich beginne Refaktor –
Ist der Test fehlgeschlagen? Was ist die Fehlermeldung? – Johnson