का उपयोग कर रेल में समावेशन सत्यापन मेरे पास मेरे ActiveRecord में निम्न सत्यापन है।मैं कैसे परीक्षण कर सकता हूं: RSpec
validates :active, :inclusion => {:in => ['Y', 'N']}
मैं अपने मॉडल सत्यापन का परीक्षण करने के लिए निम्न का उपयोग कर रहा हूं।
should_not allow_value('A').for(:active)
should allow_value('Y').for(:active)
should allow_value('N').for(:active)
क्या इसका परीक्षण करने के माध्यम से कोई क्लीनर और अधिक है? मैं वर्तमान में आरएसपीसी 2 और कंधे मैचर्स का उपयोग कर रहा हूं।
संपादित
चारों ओर देख मैं सिर्फ पाया, यह शायद एक 'ठीक है' इस परीक्षण की तरह, चाहिये और इस के लिए कुछ भी किसी को भी, जो इसे इसके लिए अपने स्वयं के कस्टम मिलान लिख सकते हैं की आवश्यकता है प्रदान नहीं करता है कुछ करने के बाद (और शायद इसे परियोजना में वापस योगदान दें)। चर्चाओं के कुछ लिंक जो घुसपैठ कर सकते हैं:
should_ensure_value_in_range
यह एक क्या इस्तेमाल किया जा सकता करने के लिए करीब आता है, लेकिन केवल पर्वतमाला और न मानों की सूची स्वीकार करता है। कस्टम matcher इस पर आधारित हो सकता है।उदाहरण::
it { should validate_inclusion_check_constraint_on :status, :allowed_values => %w(Open Resolved Closed) } it { should validate_inclusion_check_constraint_on :age, :allowed_values => 0..100 }
मिलान
यह जांचने के लिए कि यह अन्य मानों को अस्वीकार कर रहा है, आप कुछ ऐसा कर सकते हैं: 'यह {must_not allow_value ('? ') के लिए (: सक्रिय)}' - जैसा कि आपने कहा था, आप सभी संभावित मानों की जांच नहीं कर सकते हैं, लेकिन कर रहे हैं यह सभी अनुमत मूल्यों की जांच के अलावा उचित कवरेज की तरह लगता है। – bjnord
आपके द्वारा संदर्भित किए गए कंधे_मैचर ** ** मूल रूप से बताए गए अनुसार काम करते हैं, यानी यह प्रदान किए गए सरणी में मानों को अस्वीकार नहीं करता है। [दस्तावेज़ीकरण देखें] (https://github.com/thoughtbot/shoulda-matchers#ensure_inclusion_of)। अच्छे उपाय के लिए, मैंने इसे रेल ऐप में परीक्षण किया और यह सही तरीके से काम करता है। –
@ लार्सलेवी - टिप्पणी के लिए धन्यवाद। ऐसा लगता है कि उन्होंने 'disallows_value_outside_of_array? 'की जांच करने के लिए सत्यापन को बदल दिया है। पुराने https://github.com/thoughtbot/shoulda-matchers/blob/v1.2.0/lib/shoulda/matchers/active_model/ensure_inclusion_of_matcher.rb#L86 बनाम अब देखें https://github.com/thoughtbot/shoulda- matchers/blob/15abdf066732828034efea751c2937aa81d080fe/lib/shoulda/matchers/active_model/sure_inclusion_of_matcher.rb # L90 –