Sha256: 81c60b1b8819a695a9d66199f89e5ddf68fb800bc00a7b493da865855c925ae9

Contents?: true

Size: 703 Bytes

Versions: 4

Compression:

Stored size: 703 Bytes

Contents

require "spec_helper"

describe "a double receiving to_ary" do
  shared_examples "to_ary" do
    it "returns nil" do
      expect do
        obj.to_ary.should be_nil
      end.to raise_error(NoMethodError)
    end

    it "can be overridden with a stub" do
      obj.stub(:to_ary) { :non_nil_value }
      obj.to_ary.should be(:non_nil_value)
    end

    it "supports Array#flatten" do
      obj = double('foo')
      [obj].flatten.should eq([obj])
    end
  end

  context "double as_null_object" do
    let(:obj) { double('obj').as_null_object }
    include_examples "to_ary"
  end

  context "double without as_null_object" do
    let(:obj) { double('obj') }
    include_examples "to_ary"
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rspec-mocks-2.6.0 spec/rspec/mocks/to_ary_spec.rb
rspec-mocks-2.6.0.rc6 spec/rspec/mocks/to_ary_spec.rb
rspec-mocks-2.6.0.rc4 spec/rspec/mocks/to_ary_spec.rb
rspec-mocks-2.6.0.rc2 spec/rspec/mocks/to_ary_spec.rb