मैंने अभी परीक्षण के लिए एक परीक्षण लिखा है यदि कोई नया उपयोगकर्ता निर्माण में व्यवस्थापक सेटिंग भी शामिल है।रुपेक सत्यापन विफल - विशेषता खाली नहीं हो सकती है लेकिन यह खाली नहीं है
describe User do
before(:each) do
@attr = {
:name => "Example User",
:email => "[email protected]",
:admin => "f"
}
end
it "should create a new instance given valid attributes" do
User.create!(@attr)
end
it "should require a name" do
no_name_user = User.new(@attr.merge(:name => ""))
no_name_user.should_not be_valid
end
it "should require an email" do
no_email_user = User.new(@attr.merge(:email => ""))
no_email_user.should_not be_valid
end
it "should require an admin setting" do
no_admin_user = User.new(@attr.merge(:admin => ""))
no_admin_user.should_not be_valid
end
end
फिर, मेरे उपयोगकर्ता मॉडल में मेरे पास है:: यहाँ परीक्षा है
class User < ActiveRecord::Base
attr_accessible :name, :email, :admin
has_many :ownerships
has_many :projects, :through => :ownerships
email_regex = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :name, :presence => true,
:length => { :maximum => 50 }
validates :email, :presence => true,
:format => { :with => email_regex },
:uniqueness => { :case_sensitive => false }
validates :admin, :presence => true
end
मैं स्पष्ट रूप से एक व्यवस्थापक सेटिंग के साथ एक नया उपयोगकर्ता बना, तो क्यों यह कह रहा है यह बात गलत है? मैंने व्यवस्थापक सेटिंग के लिए माइग्रेशन व्यवस्थापक के रूप में बनाया: बूलियन। क्या मैंने कुछ गलत किया?
Failures:
1) User should create a new instance given valid attributes
Failure/Error: User.create!(@attr)
ActiveRecord::RecordInvalid:
Validation failed: Admin can't be blank
# ./spec/models/user_spec.rb:14:in `block (2 levels) in <top (required)>'
अजीब तरह से पर्याप्त है, जब मैं पुष्टि बाहर टिप्पणी: व्यवस्थापक,:
यहाँ त्रुटि है उपस्थिति => true, परीक्षण सही ढंग से उपयोगकर्ता बनाता है लेकिन
पर "उपयोगकर्ता एक व्यवस्थापक सेटिंग से किया जा सकेगा" विफल रहता हैसंपादित करें: जब मैं @attr बदलता हूं: व्यवस्थापक मान "टी" में काम करता है! मूल्य गलत होने पर यह क्यों काम नहीं करता है?
वास्तविक त्रुटि मदद करेगा। – bricker
विफलताएं: 1) उपयोगकर्ता वैध दिया एक नया उदाहरण बनाना चाहिए जिम्मेदार बताते हैं विफलता/त्रुटि: User.create (@ attr) ActiveRecord :: RecordInvalid: सत्यापन विफल: व्यवस्थापक खाली # ./spec नहीं किया जा सकता /models/user_spec.rb:14: <ब्लॉक (2 स्तर) में <शीर्ष (आवश्यक)> ' –