1

モデル

class RecipeIngredient < ActiveRecord::Base
  validates :recipe_id, presence: true, on: :save
  validates :ingredient_id, presence: true, on: :save

  belongs_to :recipe
  belongs_to :ingredient

  has_many :quantities
 end

テスト

require 'spec_helper'

describe RecipeIngredient do
  it { should validate_presence_of(:recipe_id) }
  it { should validate_presence_of(:ingredient_id) }
    it { should belong_to(:recipe) }
    it { should belong_to(:ingredient) }

    context "valid" do
      subject { RecipeIngredient.new(recipe_id: 1, ingredient_id: 1) }
      it { should be_valid }
    end
end

戻り値

失敗:

1) RecipeIngredient Failure/Error: it { should validate_presence_of(:recipe_id) } レシピ_id が nil に設定されている場合、エラーに「can't be blank」が含まれるとは予想していませんでした。エラーが発生しました: # ./spec/models/recipe_ingredient_spec.rb: 4:in `ブロック (2 レベル) in '

2) RecipeIngredient の失敗/エラー: it { should validate_presence_of(:ingredient_id) } 5:in `ブロック (2 レベル) in '

add on: :save がこのテストを破った理由がわかりません

4

1 に答える 1

-1

on: :saveまず、句を入れる必要はありません。これがデフォルトであり、省略できます。

于 2013-10-02T20:05:12.937 に答える