我想测试tags
对象是否收到方法[: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]
这是无效的语法。
有没有一种有效的方法可以做到这一点?
答案 0 :(得分:4)
我没有对此进行过测试,但我似乎记得做过这样的事情:
tagger.tags.should_receive(:[]).with(:artist)
希望这有帮助
编辑:刚检查出来,我可以确认这是有效的。