Module: Wrong::Assert
- Included in:
- MiniTest::Unit::TestCase, Wrong, Wrong
- Defined in:
- lib/wrong/assert.rb,
lib/wrong/message/test_context.rb,
lib/wrong/adapters/test_unit.rb
Defined Under Namespace
Classes: AssertionFailedError
Instance Method Summary collapse
-
#assert(*args, &block) ⇒ Object
Actual signature: assert(explanation = nil, depth = 0, &block).
-
#deny(*args, &block) ⇒ Object
Actual signature: deny(explanation = nil, depth = 0, &block).
- #failure_class ⇒ Object
-
#failure_message(method_sym, block, predicate) ⇒ Object
todo: integrate with / use Chunk somehow?.
-
#increment_assertion_count ⇒ Object
override (redefine) in adapter if necessary.
Instance Method Details
#assert(*args, &block) ⇒ Object
Actual signature: assert(explanation = nil, depth = 0, &block)
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/wrong/assert.rb', line 21 def assert(*args, &block) # to notice (and fail fast from) odd recursion problem raise "Reentry bug while trying to assert(#{args.join(', ')})" if (@_inside_wrong_assert ||= nil) @_inside_wrong_assert = true if block.nil? begin super(*args) # if there's a framework assert method (sans block), then call it rescue NoMethodError => e # note: we're not raising an AssertionFailedError because this is a programmer error, not a failed assertion raise "You must pass a block to Wrong's assert and deny methods" end else aver(:assert, *args, &block) end ensure @_inside_wrong_assert = false end |
#deny(*args, &block) ⇒ Object
Actual signature: deny(explanation = nil, depth = 0, &block)
41 42 43 44 45 46 47 48 49 |
# File 'lib/wrong/assert.rb', line 41 def deny(*args, &block) if block.nil? test = args.first msg = args[1] assert !test, msg # this makes it get passed up to the framework else aver(:deny, *args, &block) end end |
#failure_class ⇒ Object
16 17 18 |
# File 'lib/wrong/assert.rb', line 16 def failure_class AssertionFailedError end |
#failure_message(method_sym, block, predicate) ⇒ Object
todo: integrate with / use Chunk somehow?
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/wrong/message/test_context.rb', line 5 def (method_sym, block, predicate) upper_portion = super first_test_line = caller.find{|line|line =~ /(_test.rb|_spec.rb)/} raise "Can't find test or spec in call chain: #{caller.join('|')}" if first_test_line.nil? file, failure_line_number = first_test_line.split(":",2) lines = File.readlines(file) line_number = failure_line_number.to_i - 1 to_show = [] begin line = lines[line_number] to_show.unshift(line) line_number -= 1 end while !(line =~ /^\s+(test|it)[ ]+/ || line =~ /^\s+def test_\w+/) to_show[to_show.length-1] = to_show[to_show.length-1].chomp + " ASSERTION FAILURE #{file}:#{failure_line_number.to_i}\n" upper_portion + "\n\n" + to_show.join end |
#increment_assertion_count ⇒ Object
override (redefine) in adapter if necessary
59 60 |
# File 'lib/wrong/assert.rb', line 59 def increment_assertion_count end |