Je n'arrive pas à comprendre comment tester la sortie avec puts
. J'ai besoin de savoir ce que je dois faire dans mon fichier RSPEC.rspec puts test de sortie
Ceci est mon fichier Rspec:
require 'game_io'
require 'board'
describe GameIO do
before(:each) do
@gameio = GameIO.new
@board = Board.new
end
context 'welcome_message' do
it 'should display a welcome message' do
test_in = StringIO.new("some test input\n")
test_out = StringIO.new
test_io = GameIO.new(test_in, test_out)
test_io.welcome_message
test_io.game_output.string.should == "Hey, welcome to my game. Get ready to be defeated"
end
end
end
Ceci est le fichier qu'il teste contre:
class GameIO
attr_reader :game_input, :game_output
def initialize(game_input = $stdin, game_output = $stdout)
@stdin = game_input
@stdout = game_output
end
def welcome_message
output "Hey, welcome to my game. Get ready to be defeated"
end
def output(msg)
@stdout.puts msg
end
def input
@stdin.gets
end
end
NOTE: Je mis à jour mon code Rspec pour refléter les changements que j'ai fait à mon dossier de test donné suggestions trouvées ailleurs. Pour résoudre complètement le problème, j'ai utilisé les modifications suggérées par Chris Heald dans mon fichier principal. Merci à tous et merci Chris.
Pour référence ultérieure: Une fois que vous avez résolu la question, il est préférable de mettre la solution dans une réponse plutôt que de modifier votre question. Si quelqu'un revient à cette question, il est difficile de voir quelle était la question initiale. :) – henrikhodne