24 lines
740 B
Ruby
24 lines
740 B
Ruby
# encoding: utf-8
|
|
|
|
shared_examples 'it calls super' do |method|
|
|
around do |example|
|
|
# Restore original method after each example
|
|
original = "original_#{method}"
|
|
superclass.class_eval do
|
|
alias_method original, method
|
|
example.call
|
|
undef_method method
|
|
alias_method method, original
|
|
end
|
|
end
|
|
|
|
it "delegates to the superclass ##{method} method" do
|
|
# This is the most succinct approach I could think of to test whether the
|
|
# superclass method is called. All of the built-in rspec helpers did not
|
|
# seem to work for this.
|
|
called = false
|
|
superclass.class_eval { define_method(method) { |_| called = true } }
|
|
expect { subject }.to change { called }.from(false).to(true)
|
|
end
|
|
end
|