मुझे लगता है कि अद्वितीय है एक ई-मेल के साथ एक उपयोगकर्ता वर्ग है, लेकिन किरायेदार के दायरे वाला का उपयोग कर:एक रेल परियोजना में एक दायरे में परीक्षण विशिष्टता चाहिये (लेकिन rspec नहीं)
class User < ActiveRecord::Base
validates :email, :uniqueness => {:scope => :tenant_id, :allow_blank => true}
#...
end
मैं इसे परीक्षण करने के लिए कोशिश कर रहा हूँ साथ:
class UserTest < ActiveSupport::TestCase
context "a user" do
setup { @user = create :user }
subject { @user }
should validate_uniqueness_of(:email).scoped_to(:tenant_id)
end
end
लेकिन परीक्षण इस संदेश के साथ विफल रहता है:
उम्मीद त्रुटियों में शामिल करने के लिए "पहले से ही लिया गया है" जब ईमेल के लिए सेट है "[email protected] xample.com ", त्रुटियां मिलीं: [" ईमेल पहले ही लिया जा चुका है (\ "[email protected] \") "," first_name खाली नहीं हो सकता है (शून्य) "," last_name खाली नहीं हो सकता है (शून्य) "] (किरायेदार_आईडी के विभिन्न मूल्य के साथ)
जो कई प्रश्न उठाता है। त्रुटि संदेश क्यों मेल नहीं खाता है? ऐसा लगता है क्योंकि वास्तविक ईमेल पता त्रुटि संदेश में शामिल है, लेकिन इसमें क्यों शामिल है? जब मैं यूआई से त्रुटि उत्पन्न यह शामिल किया जाना प्रतीत नहीं होता:
इसके अलावा, अंत में यह कहना है कि यह एक अलग किरायेदार, के साथ यह कोशिश कर रहा है जो अगर यह सच था, यह shouldn कोई त्रुटि उत्पन्न नहीं करता है (यह तब नहीं होता जब मैं ऐप चलाता हूं), लेकिन, यह त्रुटि की अपेक्षा क्यों कर रहा है? यह केवल त्रुटि की उम्मीद करनी चाहिए यदि यह वही किरायेदार_आईडी है।
यह इतना भ्रमित है। कोई विचार क्या हो रहा है और/या इसका सही तरीके से परीक्षण कैसे किया जाए?