Kaketan::Tech

誰かのためになるかもしれないテックなことに関するメモを書いています。

RSpec での validation のテストで create せずに build した話

▼ 宣伝 ▼

これを読んでいるあなた!HP制作・アフィリエイトサイト制作に興味ありませんか?

現在、コーポレートサイトやアフィリエイトサイトの制作、月額課金制のファンクラブ制作などを行っています。

新しい収益源・集客ツールとしてのWeb制作はお任せください!「Kaketan::Tech を見た」で特別価格にてご案内いたします。

詳細は こちら のお仕事一覧をご覧ください!

プログラミング学習支援サロンのご紹介

フリーランスエンジニアの私が、あなたがプログラマとして案件を獲得できるようになるまでサポートいたします。詳細は こちら をクリック!

▲ 宣伝 ▲

RSpec で Validation のテストをするときなど、わざわざ create -> update せずに build してそれが valid かどうか検証する。 FactoryGirl を用いている。

    let(:user) { create(:user) }
    let(:item) { create(:item, user: user) }

    context '金額が期待している値のとき' do
      before do
        item.price = 2000
        item.save
      end

      it do
        expect(item).to be_valid
      end
    end

のように create して update しなくても

    let(:user) { create(:user) }
    let(:item) { build(:item, user: user, price: price) }

    context '金額が期待している値のとき' do
      let(:price) { 2000 }

      it do
        expect(item).to be_valid
      end
    end

で検証するのでよさそう。

参考: FactoryGirl: build と createの違い - tkymtk's blog http://tkymtk.hatenablog.com/entry/2013/12/15/214420