Ruby 如何在散列上使用should_receive with[]呢?
我想测试Ruby 如何在散列上使用should_receive with[]呢?,ruby,rspec,mocking,Ruby,Rspec,Mocking,我想测试标记对象是否接收方法[:artist] def artist @tagger.tags(@mp3)[:artist] end 我正在尝试这样的事情 tagger = double("tagger") tags.tagger = tagger tagger.stub(:tags) { Hash.new } tagger.tags.stub(:[]) tagger.should_receive(:tags).with(mp3) tagger.tags.should_receive('
标记
对象是否接收方法[:artist]
def artist
@tagger.tags(@mp3)[:artist]
end
我正在尝试这样的事情
tagger = double("tagger")
tags.tagger = tagger
tagger.stub(:tags) { Hash.new }
tagger.tags.stub(:[])
tagger.should_receive(:tags).with(mp3)
tagger.tags.should_receive('[:artist]')
tags.artist
这会导致语法错误,因为rspec尝试创建如下方法:
def [:artist]
这是无效的语法
有没有有效的方法可以做到这一点?我还没有测试过,但我似乎记得我做过这样的事情:
tagger.tags.should_receive(:[]).with(:artist)
希望这有帮助
编辑:刚刚签出,我可以确认这是有效的。我还没有测试过,但我似乎记得做过这样的事情:
tagger.tags.should_receive(:[]).with(:artist)
希望这有帮助
编辑:刚刚签出,我可以确认这是有效的