Sha256: 44769fa1649321c642cd0d5d3df57a1f26ffe72fbf8eb04f7b7fca76a7baacbb
Contents?: true
Size: 1.97 KB
Versions: 44
Compression:
Stored size: 1.97 KB
Contents
require 'spec_helper' module RSpec module Matchers [:be_an_instance_of, :be_instance_of].each do |method| describe "expect(actual).to #{method}(expected)" do it_behaves_like "an RSpec matcher", :valid_value => 5, :invalid_value => "a" do let(:matcher) { send(method, Fixnum) } end it "passes if actual is instance of expected class" do expect(5).to send(method, Fixnum) end it "fails if actual is instance of subclass of expected class" do expect { expect(5).to send(method, Numeric) }.to fail_with(%Q{expected 5 to be an instance of Numeric}) end it "fails with failure message for should unless actual is instance of expected class" do expect { expect("foo").to send(method, Array) }.to fail_with(%Q{expected "foo" to be an instance of Array}) end it "provides a description" do matcher = be_an_instance_of(Fixnum) matcher.matches?(Numeric) expect(matcher.description).to eq "be an instance of Fixnum" end context "when expected provides an expanded inspect, e.g. AR::Base" do let(:user_klass) do Class.new do def self.inspect "User(id: integer, name: string)" end end end before { stub_const("User", user_klass) } it "provides a description including only the class name" do matcher = be_an_instance_of(User) expect(matcher.description).to eq "be an instance of User" end end end describe "expect(actual).not_to #{method}(expected)" do it "fails with failure message for should_not if actual is instance of expected class" do expect { expect("foo").not_to send(method, String) }.to fail_with(%Q{expected "foo" not to be an instance of String}) end end end end end
Version data entries
44 entries across 44 versions & 12 rubygems