У меня есть следующий тестовый пример контроллера:
def test_showplain
Cleaner.expect(:parse).with(@somecontent)
Cleaner.any_instance.stubs(:plainversion).returns(@returnvalue)
post :showplain, {:content => @somecontent}
end
Это прекрасно работает, за исключением того, что я хочу, чтобы "заглушки (: plainversion)" были "ожидаемыми (: plainversion)".
Вот код контроллера:
def showplain
Cleaner.parse(params[:content]) do | cleaner |
@output = cleaner.plainversion
end
end
А уборщик это просто:
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
Опять же, я не могу понять, как надежно протестировать «очиститель», предоставляемый методом «разбора». Есть предложения?