Можно ли вывести шаблон из метода вспомогательного маршрута? - PullRequest
0 голосов
/ 24 марта 2019

При использовании, например, new_user_path, могу ли я вывести отображаемое имя шаблона только из этого помощника?

Я использую общие примеры rspec и ищу способ заявить, чтопредставленный шаблон является правильным (а не, скажем, перенаправлением), только передавая помощника маршрута в общий пример.

то есть, что должно быть ???, если я только передаю path in?

shared_examples 'my spec' do
  it 'will not redirect' do
    get path

    expect(response).to render_template(???)
  end
end

Rspec.describe 'MySpec' do
  it_behaves_like 'my spec' do
    let(:path) { new_user_path }
  end
end

1 Ответ

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

Учитывая, что это пример совместного использования контроллера, вы можете использовать следующее:

shared_examples 'my spec' do
  it 'will not redirect' do
    get path

    expect(response).to render_template(request.params['action'])
  end
end

Rspec.describe 'MySpec' do
  it_behaves_like 'my spec' do
    let(:path) { new_user_path }
  end
end

В контексте вашего пользовательского контроллера тест будет:

  it 'will not redirect' do
    get new_user_path # => get '/users/new'

    expect(response).to render_template('new')
  end

RSpec'srender_template matcher требуется только действие.

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