Sha256: ddd6622b51696c4cefd0789e6edea9af041b8b8cc237ac455990255b0db5a8ef

Contents?: true

Size: 998 Bytes

Versions: 5

Compression:

Stored size: 998 Bytes

Contents

require 'spec_helper'

describe Mutant do
  describe '.singleton_subclass_instance' do
    let(:object) { described_class }

    subject { object.singleton_subclass_instance(name, superclass, &block) }

    before { subject }

    let(:name)       { 'Test'                }
    let(:block)      { proc { def foo; end } }
    let(:superclass) { Class.new             }

    let(:generated) { superclass.const_get(:Test) }

    it_should_behave_like 'a command method'

    it 'sets expected name' do
      name = generated.class.name
      expect(name).to eql("::#{self.name}")
      expect(name).to be_frozen
    end

    it 'stores instance of subclass' do
      expect(generated).to be_kind_of(superclass)
    end

    it 'evaluates the context of proc inside subclass' do
      expect(generated).to respond_to(:foo)
    end

    it 'generates nice #inspect' do
      inspect = generated.inspect
      expect(inspect).to eql("::#{self.name}")
      expect(inspect).to be_frozen
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mutant-0.5.24 spec/unit/mutant_spec.rb
mutant-0.5.23 spec/unit/mutant_spec.rb
mutant-0.5.22 spec/unit/mutant_spec.rb
mutant-0.5.21 spec/unit/mutant_spec.rb
mutant-0.5.20 spec/unit/mutant_spec.rb