Можно ли вывести шаблон из метода вспомогательного маршрута?

Вот замечательный образец, который наиболее точно соответствовал проверке, которую мне нужно было достичь. Я не являюсь оригинальным автором, но думаю, что это стоит того, что я считаю эту проблему очень сложной и без кратких или широко полезных ответов.

Следующее регулярное выражение будет использовать широко используемые числа и характер комбинаций в различных форматах телефонных номеров:

/^\s*(?:\+?(\d{1,3}))?([-. (]*(\d{3})[-. )]*)?((\d{3})[-. ]*(\d{2,4})(?:[-.x ]*(\d+))?)\s*$/gm

Положительный: +42 555.123.4567 + 1- (800) -123-4567 +7 555 1234567 +7 (926) 1234567 (926) 1234567 +79261234567 926 1234567 9261234567 1234567 123-4567 123-89-01 495 1234567 469 123 45 67 89261234567 8 (926) 1234567 926.123.4567 415-555-1234 650-555-2345 (416) 555-3456 202 555 4567 4035555678 1 416 555 9292

Отрицательный: 926 3 4 8 800 600-APPLE

Исходный источник: http://www.regexr.com / 38pvb

0
задан springloaded 24 March 2019 в 19:40
поделиться

1 ответ

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

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's render_template matcher нужно только действие.

0
ответ дан Fito von Zastrow 24 March 2019 в 19:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: