メインコンテンツまでスキップ

be_a_new マッチャー

be_a_new マッチャーは、クラスを受け入れ、サブジェクトがそのクラスのインスタンスであるかつ persisted? が false を返す場合に合格します。

また、be_a_new に対して with をチェーンすることもできます。これにより、ハッシュ形式の属性を指定して、サブジェクトが同じ属性を持つことを指定できます。

4 つの be_a_new の可能性を持つサンプル仕様

次の内容で "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 を実行すると、

すべての例が合格するはずです。