निम्नलिखित RSpec टुकड़ा पर विचार करें:आरएसपीईसी: प्रतीक हैश के साथ हैश के खिलाफ स्ट्रिंग कुंजियों के साथ हैश की तुलना करना?
it "should match" do
{:a => 1, :b => 2}.should =~ {"a" => 1, "b" => 2}
end
इस परीक्षा में विफल रहता है, क्योंकि एक हैश चाबी के लिए प्रतीकों का उपयोग करता है और अन्य चाबी के लिए तार का उपयोग करता है। मेरे मामले में, एक हैश एक पार्स किए गए JSON ऑब्जेक्ट है, दूसरा हैश जिसने ऑब्जेक्ट बनाया है। मैं उन्हें बराबर की तुलना करना चाहता हूं।
इससे पहले कि मैं अपना खुद का मैचर लिखूं या स्ट्रिंग कुंजियों के लिए दोनों हैंश को मजबूर कर रहा हूं, क्या कोई मैचर या तकनीक है जो इस (सामान्य) केस को संभालती है?
यह एक रेल विधि –
@ जॉन गहरे लाल रंग नहीं है प्रतीक कुंजी के साथ हैश पर
with_indifferent_access
का उपयोग सुनिश्चित करें नीचे hashrocket रूबी वाक्य रचना और Rspec उम्मीद वाक्य रचना के साथ एक उदाहरण है .s.in.co: हाँ, लेकिन अब ActiveSupport का उपयोग स्टैंड-अलोन (इसके छोटे सबसेट लोड करने की क्षमता के साथ) किया जा सकता है, यह एक स्वीकार्य उत्तर है। –