rspec заполнение переменной данными из внешнего файла - PullRequest
5 голосов
/ 24 января 2012

Я все еще новичок, поэтому прошу прощения, если это легко, но я не смог найти ответ в Google.У меня есть модуль библиотеки, который обрабатывает некоторые данные из ответа API.Я написал тесты, и все это прекрасно работает, однако я бы хотел переместить поддельные данные ответов API во внешний файл, поскольку он довольно длинный и затрудняет чтение теста.Я посмотрел на оборудование и фабрики, но они действительно для моделей, и это просто очень длинный фрагмент XML.Мой текущий тест выглядит примерно так

describe :my_test do
  let(:my_var) { REALLY_LONG_XML_SNIPPET}
  ....test code...
end

Как я могу переместить REALLY_LONG_XML_SNIPPET во внешний файл?

1 Ответ

10 голосов
/ 24 января 2012

Это то, что я использую в своих спецификациях:

let(:doc) { IO.read(Rails.root.join("spec", "fixtures", "api_response.xml")) }

Это скопирует содержимое файла в строку.

Обратите внимание, что я отключил стандартные значения ActiveRecord для RSpec,поэтому я поместил свои приборы в этот каталог.

Обновление: с Rspec Rails 3.5 и новее

можно также использовать file_fixture

let(:doc) { file_fixture("api_response.xml").read }

для

файлов, которые по умолчанию сохраняются в spec / fixtures / files

, но местоположение файла может быть настроено.

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