Module: On::TestHelper
- Defined in:
- lib/on/test_helper.rb
Overview
Helper for testing On callbacks.
Example
require 'minitest/autorun'
require 'on'
require 'on/test_helper'
class SomeTest < MiniTest::Spec
include On::TestHelper
let(:recorder) { On::TestHelper::Recorder.new }
it "records everything" do
on = On.new(:success, :failure, &recorder)
on.call :success, :some, :args
assert_callback recorder, :success, :some, :args
end
it "calls nothing" do
on = On.new(:success, :failure, &recorder)
# nothing called
refute_callbacks recorder
end
it "records everything manually" do
on = On.new(:success, :failure) do |result|
recorder.record_block
recorder.record_callback(result, :success, :failure)
end
on.call :success, :some, :args
assert_callback recorder, :success, :some, :args
end
it "checks record args in a block" do
on = On.new(:success, :failure) do |result|
recorder.record_block
recorder.record_callback(result, :success, :failure)
end
on.call :success, :some, :args
assert_callback recorder, :success do |some, args|
assert_equal :some, some
assert_equal :args, args
end
end
end
Defined Under Namespace
Classes: Recorder
Instance Method Summary collapse
-
#assert_callback(recorder, name, *args) ⇒ Object
Asserts that a certain callbacks has been recorded by
recorder
. -
#refute_callbacks(recorder) ⇒ Object
Asserts that no callbacks has been recorder by
recorder
.
Instance Method Details
#assert_callback(recorder, name, *args) ⇒ Object
Asserts that a certain callbacks has been recorded by recorder
.
Example
assert_callback recorder, :success, "some", "args"
55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/on/test_helper.rb', line 55 def assert_callback(recorder, name, *args) raise ArgumentError, "Provide args or block but not both" if block_given? && !args.empty? callback = recorder.last_record = proc { "Callback was #{callback}" } assert callback, "No callbacks found" assert_equal name, callback.name, if block_given? yield *callback.args else assert_equal args, callback.args, end end |
#refute_callbacks(recorder) ⇒ Object
Asserts that no callbacks has been recorder by recorder
.
70 71 72 |
# File 'lib/on/test_helper.rb', line 70 def refute_callbacks(recorder) assert recorder.empty?, "Something has been recorded #{recorder.inspect}" end |