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 Gutteridge
Bioinformatics Center
Kyoto University
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 7/2/07, Alex Gutteridge <alexg@kuicr.kyoto-u.ac.jp> 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...
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 Gutteridge
Bioinformatics Center
Kyoto University
···
On 3 Jul 2007, at 06:23, Jano Svitok wrote:
On 7/2/07, Alex Gutteridge <alexg@kuicr.kyoto-u.ac.jp> 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.
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
···
On 7/2/07, Alex Gutteridge <alexg@kuicr.kyoto-u.ac.jp> 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.