relying on $! to hold the information message from the last raise,
but this doesn’t work as assert_raise sets $! to nil somewhere along
the line.
I can use an idiom like:
begin
raise SomeExceptoin, “some message”
rescue
assert_equal(“some message”, $!.message)
assert_raise(SomeExceptoin) {raise SomeExceptoin, “some message”}
end
in the tests, but this isn’t very DRY. This could be improved by
inventing a assert_raise_with_message method to hide this, but is
there a way already defined in the unit testing framework to handle
this?
On Fri, 13 Jul 2007 17:55:01 +0900, Dave B. wrote:
I do not think that there is a builtin assertion for exception
messages, but defining your assert_raise_message is easy[1].
But I thought I'd point out a small detail:
I can use an idiom like:
begin
raise SomeExceptoin, “some message”
rescue
assert_equal(“some message”, $!.message)
assert_raise(SomeExceptoin) {raise SomeExceptoin, “some message”}
end
this seem slightly wrong, wouldn’t it be
begin
# raise SomeException with “some message”
rescue => e
assert_equal(“some message”, e.message)
assert_instance_of SomeException, e
end
?
perlish variables are ugly and I think there is no need to raise the
exception again.
[1]
even but I’d like to have a simple way to have filter_backtrace hide my
own
custom assertions