キー/値データを格納Dishes
する列 ( ) を持つテーブル ( ) があります ( PostgreSQLデータベースと同様)。nutrition_facts
hstore
次のように、フィクスチャ フォルダーに Dish の新しいインスタンスを定義しました。
nutrition_facts:
id: 6
name: Dish 6
category: Cat 1
description: Something about Dish 6
price: 15.32
menu_id: 1
nutrition_facts:
serving_size:
calories: 392
しかし、実行時に次のアサーションを機能させることができないようですrake test:units
-最初に失敗しますassert_not_nil
test "no serving size with calories" do
dish = dishes(:nutrition_facts)
assert_not_nil(dish.calories)
assert_nil(dish.serving_size)
assert !dish.save, "Saved dish when serving size wasn't defined while calories was"
end
フィールド全体をテストせずに、個人calories
と値をテストするにはどうすればよいですか?serving_size
nutrition_facts
dish.rb
つまり、ブラウザーでアプリケーションを実行すると機能する次の検証 (ファイルから) をテストしようとしています。
# Check 'serving size' isn't blank only if 'calories' is defined
validates_presence_of :serving_size, :if => Proc.new { |val| !val.calories.blank? }