summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--dragon/assert.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/dragon/assert.rb b/dragon/assert.rb
index 47d39ef..0eb8c2a 100644
--- a/dragon/assert.rb
+++ b/dragon/assert.rb
@@ -47,5 +47,18 @@ module GTK
end
nil
end
+
+ def raises! exception_class, message = nil
+ @assertion_performed = true
+ begin
+ yield
+ rescue exception_class
+ return # Success
+ rescue Exception => e
+ raise "Expected #{exception_class.name} to be raised but instead #{e.class.name} was raised\n#{message}"
+ else
+ raise "Expected #{exception_class.name} to be raised but nothing was raised\n#{message}"
+ end
+ end
end
end