Я создаю гем, который позволяет использовать гораздо более удобную и настраиваемую «консоль» для разработки рубинового гем, чем текущие параметры (например, «консоль комплекта»).
Таким образом, одним из, если не самым важным, аспектом всего драгоценного камня является то, что он фактически открывает сеанс консоли, который я в настоящее время настроил в методе запуска:
class MyConsole
def start
Pry.start(self)
end
end
Я пытаюсь протестировать эту функциональность, но это сложно, потому что для этого не так много хороших ресурсов. Это также очень раздражает, потому что каждый раз, когда я запускаю этот метод в rspec, открывается pry, и мне приходится выходить из него, прежде чем закончить остальные тесты.
У меня три основных вопроса:
- Как я могу запустить метод в rspec, который запускает pry, фактически не запуская pry?
- Как я могу конкретно проверить, действительно ли этот метод запускает pry?
- Предполагая, что 1 и 2 возможны, как я могу проверить, в каком контексте метод начинает подглядывать? (обратите внимание, как метод start вызывает Pry.start(self), что означает, что сеанс pry должен открываться в контексте экземпляра MyConsole.)