RoR и RSpec: как получить доступ к переменным экземпляра контроллера без определения методов доступа? - PullRequest
20 голосов
/ 16 июля 2009

Я пишу тесты rspec для моего контроллера и не могу найти решение следующей проблемы. Для одного из крайних тестов мне нужно проверить значение одной переменной экземпляра. Как я могу получить к нему доступ, не определяя метод доступа? По умолчанию обычный:

controller.variable.should == '3.15' 

не работает.

Определение

attr_reader: переменная

просто пройти тесты было бы глупо и Я уверен, что есть более разумный способ.

1 Ответ

43 голосов
/ 16 июля 2009
controller.instance_variable_get(:var)

если вы обнаружите, что делаете это, возможно, вы захотите переосмыслить свой подход к сокрытию информации, чтобы вы тестировали основное поведение, а не случайные детали реализации. Ваши тесты должны убедиться, что «вещь» функционирует так, как и должна, не слишком привязываясь к конкретной реализации.

РЕДАКТИРОВАТЬ: Разве assigns(:var) не рельсы, проверяющие магию для того же действия с контроллерами?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...