In Ruby, I need to print a feedback message and then exit with a status code of 1.
class Foo
def bar
puts "error"
exit 1
end
end
In RSpec, how can I ignore exit 1 when expecting the feedback message to be printed?
it "returns a feedback message" do
expect { Foo.new.bar }.to output(/no error/i).to_stdout
end
If I run the spec above, no failure is raised.
Finished in 0.02402 seconds (files took 0.17814 seconds to load)
1 example, 0 failures
exit raises a SystemExit error. You can rescue it like any other error or expect to raise_error:
RSpec.describe Foo do
it "returns a feedback message" do
expect { Foo.new.bar }
.to output(/no error/i).to_stdout
.and raise_error(SystemExit)
end
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With