Когда вы просматриваете документацию RSpec, вы заметите, что она очень настаивает на том, чтобы тесты модели, обзора и контроллера были раздельными и с минимальным взаимодействием между испытаниями разных уровней (в значительной степени полагаясь на насмешку). То, как все ваши слои подходят друг к другу, больше попадает в домен интеграции. Если у вас есть достойный набор интеграционных тестов, вы неизбежно заметите, когда сломаете что-то, что влияет на другой уровень, как в примере, который вы описали.
Вы могли бы сделать интеграцию тестирование этого рода с RSpec (взгляните на режим интеграции в документации RSpec), но это довольно утомительно и некрасиво:
response.should have_tag("input[name=?]", "foo")
режим интеграции будет вызывать ваш контроллер и визуализации соответствующее представление, и в этот момент станет очевидным, если представление откажется от визуализации, поскольку оно вызывает несуществующий модельный метод (в этом случае даже не важно, что у вас есть в вашем тесте просмотра).
Или вы могли бы пойти по маршруту огурца/стейка/etc (что, вероятно, является лучшей идеей в конечном итоге).