Я отправил это в группу Cucumber без ответов, что заставляет меня задуматься, действительно ли это проблема с огурцом или нет. Я довольно плохо знаком с огурцом, и есть ряд вещей, которые я действительно не совсем понимаю о том, как среда огурца настраивается и выполняется в тестовой среде.
У меня есть приложение REST API rails, которое я тестирую с помощью cucumber, используя гем RestClient для генерации действия создания сообщения в контроллере. Когда я запускаю функцию с жестко заданным URL-адресом, указывающим на работающий сервер localhost (моя локальная среда сервера разработки; замена tickets_url на «http: //»
localhost / tickets "в приведенном ниже фрагменте), мои шаги огурца выполняются, как и ожидалось. Однако, когда URL ресурса разрешается на хост огурца, который я объявляю, я получаю исключение ошибки сокета.
getaddrinfo: nodename nor servname provided, or not known (SocketError)
Из файла шагов:
When /^POS Adapter sends JSON data to the Tickets resource$/ do
ticket = {
:ticket => {
...
}
}
host! "test.host"
puts tickets_url
RestClient.post tickets_url, ticket.to_json, :content_type => :json, :accepts => :json
end
(оператор "выводит" печатает "http://test.host/tickets")
Использование следующих драгоценных камней:
- огурец 0.6.1
- Webrat-0.6.0
- Остальные-клиент-1.2.0
Я также должен сказать, что у меня есть аналогичная настройка в другом приложении rails, использующая test.host в качестве хоста, и, похоже, он работает нормально. Буду признателен за понимание того, чего мне не хватает в моей конфигурации или с чем это может быть связано.