25
我想模擬一個會話使用FactoryGirl
/shoulda
(它使用燈具,但我有使用工廠的問題)。我有以下的工廠(用戶登錄和電子郵件都有unique
驗證):工廠女孩何時在db中創建對象?
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!
這意味着當我在測試設置中引用它時,記錄已經存在於db中。有什麼我不明白的嗎? FactoryGirl
在啓動時在db中創建所有工廠?
軌2.3.5 /早該/ FactoryGirl
但我只有一個工廠(:用戶)在我的代碼中提到。爲什麼它運行兩次? (第二個是Factory(:session_user),它是一個Session實例) – 2010-04-23 09:19:11
抱歉,必須閱讀該問題 – 2010-04-23 09:23:57