как тестировать output in rspec с использованием i18n
Есть метод:
def start_console
message(:welcome)
show_menu
end
def message(message, params = {})
puts I18n.t(message, params)
end
def show_menu
message(:menu)
answer = gets_user_answer
choose_options(answer)
end
я хочу проверить вывод в консоль
it 'welcome and menu' do
allow(subject).to receive_message_chain(:gets, :chomp)
expect{subject.message(:welcome)}.to output('Welcome to game Codebreaker\n').to_stdout
expect{subject.message(:menu)}.to output('///').to_stdout
subject.start_console
end
Failure/Error: expect{subject.message(:welcome)}.to output('Welcome to game Codebreaker\n').to_stdout
expected block to output "Welcome to game Codebreaker\\n" to stdout, but output "translation missing: en.welcome\n"
Diff:
@@ -1 +1 @@
-Welcome to game Codebreaker\n
+translation missing: en.welcome
Если я добавлю
allow(I18n).to receive(:t).with(:welcome, {}) {"Welcome to game Codebreaker"}
тест проходить, но это через заглушку, как его заставить использовать реальную базу сообщений Это мой первый тест не судите строго