Sha256: 850a00cdef95df7eba5e82e062bf1b025735f37e6e6989ee98841c9d0c7f5db7
Contents?: true
Size: 904 Bytes
Versions: 11
Compression:
Stored size: 904 Bytes
Contents
shared_examples_for 'a #freeze method' do let(:sample_exception) do begin object.dup.freeze.instance_variable_set(:@foo, :bar) rescue => exception exception end end let(:expected_exception_class) do # Ruby 1.8 blows up with TypeError Ruby 1.9 with RuntimeError sample_exception.class end let(:expected_exception_message) do # Ruby 1.8 blows up with a different message than Ruby 1.9 sample_exception.message end it_should_behave_like 'an idempotent method' it 'returns object' do should be(object) end it 'prevents future modifications' do subject expectation = raise_error(expected_exception_class,expected_exception_message) expect { object.instance_variable_set(:@foo, :bar) }.to(expectation) end its(:frozen?) { should be(true) } it 'allows to access attribute' do subject.name.should eql('John') end end
Version data entries
11 entries across 11 versions & 1 rubygems