我有以下控制器测试用例:
def test_showplain
Cleaner.expect(:parse).with(@somecontent)
Cleaner.any_instance.stubs(:plainversion).returns(@returnvalue)
post :showplain, {:content => @somecontent}
end
这很好用,除了我希望“stubs(:plainversion)”成为“expects(:plainversion)”。
这是控制器代码:
def showplain
Cleaner.parse(params[:content]) do | cleaner |
@output = cleaner.plainversion
end
end
Cleaner 很简单:
class Cleaner
### other code and methods ###
def self.parse(@content)
cleaner = Cleaner.new(@content)
yield cleaner
cleaner.close
end
def plainversion
### operate on @content and return ###
end
end
同样,我不知道如何可靠地测试“解析”方法提供的“清洁器”。有什么建议么?