Как установить приватную переменную экземпляра, используемую в тесте метода?

Дан класс с несколькими переменными экземпляра и некоторыми методами. Некоторые переменные экземпляра доступны через attr_reader и attr_accessor. Таким образом, остальные являются приватными.
Некоторые из частных переменных экземпляра устанавливаются в одном из методов экземпляра и считываются/используются в другом методе.

Для тестирования я использую RSpec. Поскольку я все еще новичок в Ruby и хочу, чтобы все было правильно, я определил свои тесты как довольно тонкие. Таким образом, у меня есть один блок describe для каждого метода экземпляра, которые сами разбиты на подмножество contexts и its. Общие предварительные условия среды определяются с помощью before.

Однако при тестировании одного из методов, который использует, но не устанавливает одну из частных переменных, мне нужно вызвать другой метод, который устанавливает эту переменную. Для меня это кажется довольно обременительным и не модульным.

Есть ли способ принудительно установить частную переменную экземпляра в определенное значение. Аналогично "вырыванию" значения приватной переменной экземпляра с помощью Object::instance_eval(:var).

45
задан Andrew Grimm 27 March 2012 в 23:38
поделиться