warn defined in Kernel , which is included in every object. If you did not raise a warning during initialization, you can specify a warning similar to this:
obj = SomeClass.new obj.should_receive(:warn).with("Some Message") obj.method_that_warns
The speculation of the warning raised in the initialize method is quite complex. If you need to do this, you can change the fake IO to the $stderr object and check it. Just remember to restore it after the example.
class MyClass def initialize warn "Something is wrong" end end describe MyClass do before do @orig_stderr = $stderr $stderr = StringIO.new end it "warns on initialization" do MyClass.new $stderr.rewind $stderr.string.chomp.should eq("Something is wrong") end after do $stderr = @orig_stderr end end
David Chelimsky Mar 27 2018-11-23T00: 00Z
source share