Тестирование металлических направляющих /стойки с RSpec?
-
20-09-2019 - |
Вопрос
Допустим, у меня есть класс металла с именем Preview .Как мне протестировать это с помощью RSpec?
Когда я пытаюсь:
require 'spec_helper'
describe Preview do
it "should return the posted content" do
post "/preview", :content => "*title*"
response.body.should == "*title*"
end
end
Я получаю:
undefined method `post' for #<ActiveSupport::TestCase::Subclass_1:0x1058b3098>
Похоже, что RSpec не загружает :post
метод, если тест явно не предназначен для контроллера.Я пытался указать :type => :controller
безрезультатно.
Решение
rspec имеет спецификации интеграции, которые обертывают интеграционные тесты rails (которые проходят через rack).Просто вставьте эту спецификацию в ./spec/integration/preview_spec.rb
.
Другие советы
Я думаю, что лучше тестировать с помощью rack / test
В настоящее время (rspec-rails 2.2.0 и rails 3) вы можете достичь этого с помощью Запрашивать Спецификации:
В соответствии с файл readme:
Спецификации запроса живут в спецификации /requests
[...]
Спецификации запроса смешиваются с поведением интеграционных тестов Rails.Смотрите документы для ActionDispatch::Integration::Runner для получения дополнительной информации.