Тесты контроллера RSpec для стойки с проблемой промежуточного программного обеспечения для стойки

StackOverflow https://stackoverflow.com/questions/2225852

  •  19-09-2019
  •  | 
  •  

Вопрос

У меня возникли большие проблемы с тестированием с помощью API контроллера RSpec.Прямо сейчас я использую решение для проверки подлинности промежуточного программного обеспечения (Надзиратель), и когда я запускаю спецификации, прокси-сервера, добавленного промежуточным программным обеспечением, там нет, и все тесты аутентификации выдаются NilPointerExceptionони повсюду.

Похоже, RSpec не добавляет промежуточное программное обеспечение в конечное приложение специально, и я хотел бы знать, есть ли способ обезопасить RSpec от исправления, чтобы это сработало.

Я уже протестировал все это с помощью cucumber, однако это рефакторинг старой версии аутентификации, и есть несколько тестов контроллера, которые зависят от логики аутентификации, чтобы работать.

Заранее благодарю.

Это было полезно?

Решение

Похоже, RSpec Controller API для Rails 2.x на самом деле не использует Rack при вызове контроллера, так что это невозможно сделать.Однако есть (недоказанное) решение, на которое указал Дэвид Челимски.Я отправлю ответ, который он мне дал, в список рассылки RSpec-user.

Спецификации контроллера не проходят через rack в rails 2, так что не совсем.

Существуют спецификации интеграции, которые оборачивают rails integration test API так что вы можете делать все, что вы можете сделать в rails integration test.Просто переместите файлы в spec / integration, преобразуйте запросы из "get:index" в "get 'path/to/index'", и все должно быть в значительной степени готово .

Дайте нам знать, как это работает.

Твое здоровье, Дэвид

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

Другие советы

Этот пост о связанной проблеме может пролить некоторый свет и в конечном итоге привести к решению для указания компонентов промежуточного программного обеспечения в конфигурации rSpec (надеюсь!)

https://rspec.lighthouseapp.com/projects/5645/tickets/963-request-is-nil#ticket-963-14

На самом деле это не поможет решить вашу конкретную проблему с Rails2, но этот запрос оказался на первом месте для «промежуточного программного обеспечения rspec», поэтому, надеюсь, он поможет другим, кто столкнется с этой проблемой при тестировании бета-версии Rails3 и последующих версий.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top