1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
require 'teststrap'
class Whoops < Exception; end
context "A raises assertion macro" do
helper(:asserts_raises) { |o| Riot::Assertion.new("foo") { raise Whoops, o } }
assertion_test_passes("when expected exception is raised", "raises Whoops") do
asserts_raises(nil).raises(Whoops)
end
assertion_test_fails("when unexpected exception is raised", "expected to raise Exception, not Whoops") do
asserts_raises(nil).raises(Exception)
end
assertion_test_fails("when nothing was raised", "expected to raise Whoops, but raised nothing") do
Riot::Assertion.new("foo") { "barf" }.raises(Whoops)
end
assertion_test_passes("when provided message equals expected message", %Q{raises Whoops with message "Mom"}) do
asserts_raises('Mom').raises(Whoops, 'Mom')
end
assertion_test_fails("when messages aren't equal", %Q{expected "Mom" for message, not "Dad"}) do
asserts_raises('Dad').raises(Whoops, 'Mom')
end
assertion_test_passes("when provided message matches expected message", %Q{raises Whoops with message /Mom/}) do
asserts_raises('Mom').raises(Whoops, /Mom/)
end
assertion_test_fails("when messages don't match", %Q{expected /Mom/ for message, not "Dad"}) do
asserts_raises('Dad').raises(Whoops, /Mom/)
end
end # A raises assertion macro
context "A negative raises assertion macro" do
helper(:deny_raises) { |o| Riot::Assertion.new("foo", true) { raise Whoops, o } }
assertion_test_fails("when expected exception is raised", "expected to not raise Whoops") do
deny_raises(nil).raises(Whoops)
end
assertion_test_passes("when unexpected exception is raised", "raises Exception") do
deny_raises(nil).raises(Exception)
end
assertion_test_passes("when nothing was raised", "raises Whoops") do
Riot::Assertion.new("foo", true) { "barf" }.raises(Whoops)
end
assertion_test_fails("when provided message equals expected message", 'expected to not raise Whoops with message "Mom", but raised Whoops with message "Mom"') do
deny_raises('Mom').raises(Whoops, 'Mom')
end
assertion_test_passes("when messages and exception aren't equal", 'raises Exception with message "Dad"') do
deny_raises('Mom').raises(Exception, 'Dad')
end
assertion_test_fails("when provided message matches expected message", 'expected to not raise Whoops with message /Mom/, but raised Whoops with message "Mom"') do
deny_raises('Mom').raises(Whoops, /Mom/)
end
assertion_test_fails("when messages don't match", "expected to not raise Whoops with message /Mom/, but raised Whoops with message \"Dad\"") do
deny_raises('Dad').raises(Whoops,/Mom/)
end
end # A raises assertion macro
|