2016-01-21 7 views
5

Article#to_archive में एक और तरीका करने के लिए एक उपनाम है Article#archived! के लिए एक उपनाम है:जांच करें कि एक विधि rspec

class Article 
    alias to_archive archived! 
end 

मैं यह सुनिश्चित करने की जरूरत है, तो मैं इस परीक्षण ने लिखा है:

describe '#to_archive' do 
    it 'is an alias to #archived!' do 
    expect(subject.method(:to_archive)).to eq(subject.method(:archived!)) 
    end 
end 

हालांकि, मैं एक त्रुटि

Failure/Error: expect(subject.method(:to_archive)).to eq(subject.method(:archived!)) 

    expected: #<Method: Article(#<Module:0x00000005a7c240>)#archived!> 
     got: #<Method: Article(#<Module:0x00000005a7c240>)#to_archive(archived!)> 

यह गहरे लाल रंग का < 2.3 IIRC में काम करता था प्राप्त करते हैं। मैंने alias_method की कोशिश की, लेकिन इससे मदद नहीं मिली।

+0

नहीं ऐसा नहीं है। यह आलेख उदाहरण पर भी परिभाषित किया गया है, क्लास विधि –

उत्तर

5

Method#== की परिभाषा स्पष्ट और/या उपयोगी नहीं है, इसलिए आपको उस पर भरोसा नहीं करना चाहिए।

है कि यह एक उपनाम है की जाँच करने के लिए, आप यह कर सकते हैं:

expect(subject.method(:to_archive).original_name).to eq(:archived!) 
+1

के रूप में नहीं, बस शानदार !!! –

+0

धन्यवाद, यह इरादे के रूप में काम करता है –

संबंधित मुद्दे