मैं FactoryGirl
/shoulda
का उपयोग करके एक सत्र अनुकरण करने की कोशिश कर रहा हूं (यह फिक्स्चर के साथ काम करता है लेकिन मुझे कारखानों का उपयोग करने में समस्याएं आ रही हैं)। मैं कारखानों (उपयोगकर्ता लॉगिन और ईमेल दोनों unique
सत्यापन किया है) निम्नलिखित है:कारखाने की लड़की कब डीबी में वस्तुएं बनाती है?
Factory.define :user do |u|
u.login 'quentin'
u.email '[email protected]'
end
Factory.define :session_user, :class => Session do |ses|
ses.association :user, :factory => :user
ses.session_id 'session_user'
end
और यहाँ परीक्षण
class MessagesControllerTest < ActionController::TestCase
context "normal user" do
setup do
@request.session[:user_id]=Factory(:user).id
@request.session[:session_id]=Factory(:session_user).session_id
end
should "be able to access new message creation" do
get :new
assert_response :success
end
end
end
है, लेकिन जब मैं rake test:functionals
चलाने के लिए, मैं इस परीक्षा परिणाम प्राप्त
1) Error:
test: normal user should be able to access new message creation. (MessagesControllerTest):
ActiveRecord::RecordInvalid: Validation failed: Account name already exists!, Email already exists!
जिसका अर्थ है कि डीबी में रिकॉर्ड पहले से मौजूद है जब मैं परीक्षण सेटअप में इसका जिक्र कर रहा हूं। क्या मुझे कुछ समझ में नहीं आता है? FactoryGirl
स्टार्टअप पर डीबी में सभी कारखानों का निर्माण करता है?
रेल 2.3.5/चाहिये/FactoryGirl
लेकिन मेरे पास मेरे कोड में केवल एक फैक्टरी (उपयोगकर्ता) का उल्लेख है। यह दो बार क्यों चलता है? (दूसरा फैक्टरी (: session_user) है, जो एक सत्र उदाहरण है) –
क्षमा करें प्रश्न को पढ़ना चाहिए –