Sha256: d2923e16a1275113eb329d9c6a762556039c63f54b299093d7e9d42396e33a35
Contents?: true
Size: 933 Bytes
Versions: 1
Compression:
Stored size: 933 Bytes
Contents
# encoding: utf-8 require 'spec_helper' describe AbstractType::AbstractMethodDeclarations, '#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 expect(object.instance_method(:some_method).arity).to 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
abstract_type-0.0.7 | spec/unit/abstract_type/abstract_method_declarations/abstract_method_spec.rb |