введите помощник и введите запрос в одном тесте rspec - PullRequest
1 голос
/ 06 марта 2019

Рельсы 5.2.2

Когда мне нужно добавить помощника в моем тесте, я использую тип помощник:

RSpec.describe Utilities, type: :helper do
end

Когда мне нужно добавить какой-либо запрос, например, pach, delete или post, я использую запрос типа:

RSpec.describe 'AuthenticationPages', type: 
:request do
end

Но когда мне нужно использовать тип helper и запрос вместе, какой должен быть код?

для примера кода:

  RSpec.describe Utilities, type: :helper do
  describe 'as wrong user' do
    let(:user) {FactoryGirl.create(:user)}
    let(:wrong_user) {FactoryGirl.create(:user, email: 'wrong@example.com')}
    before {sign_in user, no_capybara: true}

    describe 'submitting a GET request to the Users#edit action' do
       before {get edit_user_path(wrong_user)}
      specify {expect(response.body).not_to match(full_title('Edit user'))}
       specify {expect(response).to redirect_to(root_url)}
    end
 end

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019
RSpec.describe 'AuthenticationPages', type: :request do
  describe Utilities, type: :helper do

//it's work 

  end
end
0 голосов
/ 06 марта 2019

type - это просто часть метаданных, о ней вы можете прочитать в документации .При использовании Rails и Rspec тип автоматически выводится, загружая дополнительные вкусности для упрощения написания теста.

Из того, что я понимаю, нет способа предоставить список типов или что-то подобное, поэтому у вас есть несколько вариантов.

Вариант 1 : выберите тип для вашегоspec, загрузите то, что вам нужно, из другого типа вручную.

Опция 2 : создайте новый специализированный тип, загрузите все, что вам нужно только для этого, короткий пример, извлеченный из rails_helper.rb:

RSpec.configure do |config|
  # ...
  config.include JsonHelpers, type: :my_unique_type
  # ...
end

В этом случае, если пометить спецификацию с type: :my_unique_type, JsonHelpers будет загружено и доступно внутри этой спецификации.

Опция 3 : разделитьобязанности, так что вам не нужны оба типа, тестируйте помощника отдельно от теста запроса.

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