be_a_new 匹配器

be_a_new 匹配器接受一个类,如果主题是该类的实例并且对 persisted? 返回 false,则通过。

你也可以用一个属性的哈希值在 be_a_new 上链式调用 with 来指定主题具有相同的属性。

一个包含四个 beanew 可能性的示例规范

给定一个名为 “spec/models/widget_spec.rb” 的文件,其中包含

require "rails_helper"

RSpec.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

我运行 rspec spec/models/widget_spec.rb

那么这些示例都应该通过。