0
この単純なコマンドラインゲームのテストで問題が発生しています。私のテスト:「取得」メソッドをスタブしたときにnilを文字列に暗黙的に変換しない
it 'should ask the user name' do
allow(@game).to receive(:get_name) { 'Patrick'}
expect{@game.show_name}.to output("Your name is Patrick.\n").to_stdout
end
私のコード:
def get_name
@name = gets.chomp
end
def show_name
puts 'Your name is ' + @name + '.'
end
エラーメッセージ:
1)ゲームのセットアップは、ユーザー名 失敗/エラーを依頼する必要がありますプット 'あなたの名前は' + @name + '。'
あなたのコードに変更しあなたがちょうどgets.chomp
get_name
スタブする必要はありません
TypeError:
no implicit conversion of nil into String
# ./lib/game.rb:24:in `+'
# ./lib/game.rb:24:in `show_name'
# ./spec/game_spec.rb:12:in `block (4 levels) in <top (required)>'
# ./spec/game_spec.rb:12:in `block (3 levels) in <top (required)>'
あなたは ':get_name'を受け取りますが、実際にはどこでも呼び出すことはできません –