Sha256: 340d1f8d5732b73948e02eaf30e8510ed71ae62d84cfec5c14e293cd63fcf676
Contents?: true
Size: 897 Bytes
Versions: 4
Compression:
Stored size: 897 Bytes
Contents
# encoding: utf-8 require 'spec_helper' describe AbstractType::ClassMethods, '#abstract_method' do subject { object.abstract_method(:some_method) } let(:object) { Class.new { include AbstractType } } let(:subclass) { Class.new(object) } before do Subclass = subclass end after do Object.class_eval { remove_const(:Subclass) } end it { should equal(object) } it 'creates an abstract method' do expect { subject }.to change { subclass.method_defined?(:some_method) }. from(false). to(true) end it 'creates an abstract method with the expected arity' do subject object.instance_method(:some_method).arity.should be(-1) end it 'creates a method that raises an exception' do subject expect { subclass.new.some_method }.to raise_error(NotImplementedError, 'Subclass#some_method is not implemented') end end
Version data entries
4 entries across 4 versions & 2 rubygems