Module: Kernel
- Defined in:
- lib/brass.rb,
lib/brass/expect.rb
Class Method Summary collapse
-
.assert(truth, *raise_arguments) ⇒ Object
Universal assertion method.
-
.fail!(*raise_arguments) ⇒ Object
Alternate for #fail that also sets assertion flag to
true. -
.refute(truth, *raise_arguments) ⇒ Object
Universal refutation method (opposite of ‘#assert`).
Instance Method Summary collapse
-
#assert(truth, *raise_arguments) ⇒ Object
private
Universal assertion method.
-
#expect(error_class) ⇒ Object
Executate a block asserting that a type of error will be raised.
-
#fail!(*raise_arguments) ⇒ Object
private
Alternate for #fail that also sets assertion flag to
true. -
#refute(truth, *raise_arguments) ⇒ Object
private
Universal refutation method (opposite of ‘#assert`).
Class Method Details
.assert(truth, *raise_arguments) ⇒ Object
Universal assertion method.
44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/brass.rb', line 44 def assert(truth, *raise_arguments) $ASSERTION_COUNTS[:total] += 1 if truth $ASSERTION_COUNTS[:pass] += 1 else $ASSERTION_COUNTS[:fail] += 1 # if fail set assertion=true then just, # fail *raise_arguments # but alas ... fail! *raise_arguments end end |
.fail!(*raise_arguments) ⇒ Object
Alternate for #fail that also sets assertion flag to true.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/brass.rb', line 80 def fail!(*raise_arguments) backtrace = case raise_arguments.last when Array raise_arguments.pop else nil end exception = case raise_arguments.first when Exception raise_arguments.shift when Class raise ArgumentError unless Exception > raise_arguments.first error_class = raise_arguments.shift error_class.new(*raise_arguments) else error_class = $! || RuntimeError error_class.new(*raise_arguments) end exception.set_backtrace(backtrace) if backtrace exception.set_assertion(true) fail exception end |
.refute(truth, *raise_arguments) ⇒ Object
Universal refutation method (opposite of ‘#assert`).
62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/brass.rb', line 62 def refute(truth, *raise_arguments) $ASSERTION_COUNTS[:total] += 1 if truth $ASSERTION_COUNTS[:fail] += 1 # if fail set assertion=true then just, # fail *raise_arguments # but alas ... fail! *raise_arguments else $ASSERTION_COUNTS[:pass] += 1 end end |
Instance Method Details
#assert(truth, *raise_arguments) ⇒ Object (private)
Universal assertion method.
44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/brass.rb', line 44 def assert(truth, *raise_arguments) $ASSERTION_COUNTS[:total] += 1 if truth $ASSERTION_COUNTS[:pass] += 1 else $ASSERTION_COUNTS[:fail] += 1 # if fail set assertion=true then just, # fail *raise_arguments # but alas ... fail! *raise_arguments end end |
#expect(error_class) ⇒ Object
Executate a block asserting that a type of error will be raised.
Presently this is not part of brass by default, as whether it should be is under debate. So this file must be required separately:
require 'brass/expect'
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/brass/expect.rb', line 12 def expect(error_class) #:yield: begin yield assert(false, error_class, "#{error_class} expected but none thrown") rescue error_class assert(true) rescue Exception => err assert(false, error_class, "#{error_class} expected but #{err.class} was thrown") end end |
#fail!(*raise_arguments) ⇒ Object (private)
Alternate for #fail that also sets assertion flag to true.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/brass.rb', line 80 def fail!(*raise_arguments) backtrace = case raise_arguments.last when Array raise_arguments.pop else nil end exception = case raise_arguments.first when Exception raise_arguments.shift when Class raise ArgumentError unless Exception > raise_arguments.first error_class = raise_arguments.shift error_class.new(*raise_arguments) else error_class = $! || RuntimeError error_class.new(*raise_arguments) end exception.set_backtrace(backtrace) if backtrace exception.set_assertion(true) fail exception end |
#refute(truth, *raise_arguments) ⇒ Object (private)
Universal refutation method (opposite of ‘#assert`).
62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/brass.rb', line 62 def refute(truth, *raise_arguments) $ASSERTION_COUNTS[:total] += 1 if truth $ASSERTION_COUNTS[:fail] += 1 # if fail set assertion=true then just, # fail *raise_arguments # but alas ... fail! *raise_arguments else $ASSERTION_COUNTS[:pass] += 1 end end |