0
user_typeはユーザーモデル内の列であり、存在=>真でなければなりません。 user_typeにnilを渡すとrspecで拒否されます。しかし、factory_girlは、sqlite3を使用してフィールドにnil user_typeを格納できます。モデルは次のバリデーションを渡します:presence => trueおよびデータベースにまだnilがありません
レール3.1.0を実行しています。 RSpecの2.6.0と2.1.0 factory_girl
//ユーザモデル:
validates :user_type, :presence => true
//工場女の子定義:
Factory.define :user do |user|
user.name "Test User"
user.email "[email protected]"
user.password "password1"
user.password_confirmation "password1"
user.status "active"
user.user_type "employee"
end
Factory.define :user_level do |level|
level.role "sales"
level.position "member"
level.team 1
level.association :user
end
// RSpecの場合:渡さ
it "should reject user type nil" do
user = Factory.build(:user, :user_type => nil)
user.should_not be_valid
end
it "should take user type 'employee'" do
user = Factory.build(:user, :user_type => 'employee')
user.errors[:user_type].should be_empty
user.should be_valid
end
どのような考えですか?ありがとう。
ありがとうございました。 User_typeはattr_accessorからuser_typeを削除した後に正常に動作します(事故によってそこに置かれます)。 – user938363