/
demo.rb
52 lines (40 loc) · 1.26 KB
/
demo.rb
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
require_relative 'init'
require 'test_bench'; TestBench.activate
context "Returns true when nothing is raised" do
success = Try.() { puts "Doesn't raise" }
assert(success)
end
context "Returns false when an error raised" do
success = Try.() { raise RuntimeError }
refute(success)
end
# Specific error class
context "Returns true when nothing is raised" do
success = Try.(RuntimeError) { }
assert(success)
end
context "Returns true when the error is raised" do
success = Try.(RuntimeError) { raise RuntimeError }
refute(success)
end
class SomeError < RuntimeError; end
context "Re-raises when the specified error is not raised" do
assert proc { Try.(SomeError) { raise RuntimeError } } do
raises_error? RuntimeError
end
end
# Multiple error classes are specified
context "Returns true when nothing is raised" do
success = Try.(RuntimeError, SomeError) { }
assert(success)
end
context "Returns true when one of the errors is raised" do
success = Try.(RuntimeError, SomeError) { raise RuntimeError }
refute(success)
end
class SomeOtherError < SomeError; end
context "Re-raises when one of the specified errors is not raised" do
assert proc { Try.(SomeError, SomeOtherError) { raise RuntimeError } } do
raises_error? RuntimeError
end
end