我正在尝试为我的脚本编写一个Rspec测试,如果我的脚本正常失败将会通过该测试。
if options[:file] == false
abort 'Missing an argument'
end
Rspec的:
it 'if the file argument is not given, it provides a helpful message' do
expect(`ruby example_file.rb`).to eq('Missing an argument')
end
我的测试仍然失败并说
expected: 'Missing an argument'
got: ''
我不确定为什么它会返回一个空字符串。我没有运气看过这些帖子:
如果您需要有关我的脚本的更多信息,请通知我。谢谢。
答案 0 :(得分:1)
abort
/ exit
将打印到stderr
,而您的rspec正在stdout
频道上收听。请尝试以下方法:
expect(`ruby example_file.rb`).to output('Missing an argument').to_stderr