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