Logo: Relish

  1. Sign in

Project: RSpec Rails 2.13

be_a_new matcher

The be_a_new matcher accepts a class and passes if the subject is an
instance of that class that returns false to persisted?

You can also chain with on be_a_new with a hash of attributes to specify
the subject has equal attributes.

Scenarios
example spec with four be_a_new possibilities
Given
a file named "spec/models/widget_spec.rb" with:
require "spec_helper"

describe Widget do
  context "when initialized" do
    subject(:widget) { Widget.new }

    it "is a new widget" do
      expect(widget).to be_a_new(Widget)
    end

    it "is not a new string" do
      expect(widget).not_to be_a_new(String)
    end
  end

  context "when saved" do
    subject(:widget) { Widget.create }

    it "is not a new widget" do
      expect(widget).not_to be_a_new(Widget)
    end

    it "is not a new string" do
      expect(widget).not_to be_a_new(String)
    end
  end
end
When
I run rspec spec/models/widget_spec.rb
Then
the examples should all pass

Last published over 4 years ago by alindeman.