ruby – 检查方法是否是rspec中另一个方法的别名
发布时间:2020-12-17 03:18:32 所属栏目:百科 来源:网络整理
导读:文章#to_archive是Article#archiveived的别名: 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.me
文章#to_archive是Article#archiveived的别名:
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!)> 它曾经用于ruby< 2.3 IIRC.我尝试了alias_method,但它没有帮助. 解决方法
方法#==的定义不明确和/或有用,因此您不应该依赖它.
要检查它是否为别名,您可以执行以下操作: expect(subject.method(:to_archive).original_name).to eq(:archived!) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |