Sha256: e24c82bdef545d742f62868256098296fbf0c31a1d1470e8bef55e5c125dfefa

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

require 'spec_helper'
require 'mspec/guards'
require 'mspec/helpers'

describe Object, "#responds_to" do
  it "returns true for specified symbols" do
    obj = double("obj")
    obj.responds_to(:to_flo)
    obj.should respond_to(:to_flo)
    obj.should respond_to(:to_s)
  end
end

describe Object, "#does_not_respond_to" do
  it "returns false for specified symbols" do
    obj = double("obj")
    obj.does_not_respond_to(:to_s)
    obj.should_not respond_to(:to_s)
  end
end

describe Object, "#undefine" do
  it "undefines the method" do
    # cannot use a mock here because of the way RSpec handles method_missing
    obj = Object.new
    obj.undefine(:to_s)
    lambda { obj.send :to_s }.should raise_error(NoMethodError)
  end
end

describe Object, "#fake!" do
  before :each do
    @obj = double("obj")
  end

  it "makes the object respond to the message" do
    @obj.fake!(:to_flo)
    @obj.should respond_to(:to_flo)
  end

  it "returns the value when the obj is sent the message" do
    @obj.fake!(:to_flo, 1.2)
    @obj.to_flo.should == 1.2
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mspec-1.9.1 spec/helpers/ducktype_spec.rb
mspec-1.9.0 spec/helpers/ducktype_spec.rb
mspec-1.8.0 spec/helpers/ducktype_spec.rb