Is there a way of asserting that a warning is raised in a unit test?
So I could write something like:
assert_warns “Blah blah” do function_that_warns(foo) end
I can’t seem to find anything in the test/unit docs, but it seems
like something that would be relatively common to test for…
Alex G.
Bioinformatics Center
Kyoto University
On 7/2/07, Alex G. [email protected] wrote:
Is there a way of asserting that a warning is raised in a unit test?
So I could write something like:
assert_warns “Blah blah” do function_that_warns(foo) end
I can’t seem to find anything in the test/unit docs, but it seems
like something that would be relatively common to test for…
You may try to write that yourself by replacing Kernel#warn, though
this way you cannot check warnings from C code. Alternatively you
could replace/capture $stderr/STDERR and look for warnings there.
On 3 Jul 2007, at 06:23, Jano S. wrote:
this way you cannot check warnings from C code. Alternatively you
could replace/capture $stderr/STDERR and look for warnings there.
I specifically need to check for warnings from C code so replacing
Kernel#warn won’t work. I will try hooking into STDERR though -
thanks for the idea.
Alex G.
Bioinformatics Center
Kyoto University
On 7/2/07, Alex G. [email protected] wrote:
I specifically need to check for warnings from C code so replacing
Kernel#warn won’t work. I will try hooking into STDERR though -
thanks for the idea.
Possibly make use of Mocha or another mocking framework?
class Foo
def bar
warn “baz”
end
end
require “test/unit”
require “rubygems”
require “mocha”
class TestFoo < Test::Unit::TestCase
def test_bar_should_warn
a = Foo.new
a.expects(:warn).with(“baz”)
a.bar
end
end