मैं निम्नलिखित परिदृश्य का परीक्षण करने की कोशिश कर रहा हूं:रुपयेपेक के साथ "एसोसिएशन" परीक्षण का सही तरीका?
-> मेरे पास टीम नामक एक मॉडल है जिसे उपयोगकर्ता द्वारा बनाया गया यह समझ में आता है। इसलिए, प्रत्येक टीम के उदाहरण को उपयोगकर्ता से संबंधित होना चाहिए।
आदेश है कि परीक्षण करने के लिए में, मैं निम्नलिखित किया है:
describe Team do
...
it "should be associated with a user" do
no_user_team = Team.new(:user => nil)
no_user_team.should_not be_valid
end
...
end
कौन सा मुझे मजबूर करता के रूप में टीम मॉडल को बदलने के लिए:
class Team < ActiveRecord::Base
# Setup accessible (or protected) attributes for your model
attr_accessible :name, :user
validates_presence_of :name
validates_presence_of :user
belongs_to :user
end
यह आपके लिए सही प्रतीत होता है? मैं बस इसे बनाने के लिए चिंतित हूं: प्रयोक्ता विशेषता सुलभ (जन असाइनमेंट) के रूप में।
क्या चाहिये वास्तव में परीक्षण करता है? मैं यह सुनिश्चित करना चाहता हूं कि जब कोई नई टीम बनाई जाए तो यह वास्तव में उपयोगकर्ता से संबंधित है। –
'कंधे' इसका परीक्षण करेगा, यह "सुनिश्चित करेगा कि संबंधित संबंध मौजूद है" (http://rubydoc.info/github/thoughtbot/shoulda-matchers/master/Shoulda/Matchers/ActiveRecord#belong_to-instance_method)। इस प्रकार, आप सुरक्षित रूप से यह मान सकते हैं कि जब आप कोई नई टीम बनाते हैं तो यह उपयोगकर्ता से संबंधित होगा। –
मैंने अभी परीक्षण किया है और मैं उपयोगकर्ता निर्दिष्ट किए बिना एक टीम बनाने में सक्षम हूं। कंधे सिर्फ यह जांचने लगता है कि मॉडल में मौजूद है या नहीं। मैं यह सुनिश्चित करना चाहता हूं कि एक टीम के पास इसके साथ जुड़े उपयोगकर्ता हैं ... मेरा मानना है कि मुझे यह सत्यापित करने की आवश्यकता है कि टीम बनाने के दौरान संबंधित उपयोगकर्ता की उपस्थिति है ... –