Контроллер Rails отображает последний шаблон итерации для всех тестов - PullRequest
0 голосов
/ 08 ноября 2018

У меня были тесты контроллера, которые проверяют, что правильный шаблон отображается для различных кодов состояния. Они работали.

Я пытаюсь реорганизовать тесты, используя следующую итерацию:

context 'renders multiple views based on status code' do
  VIEW_MAP = {
    404 => 'not_found', 500 => 'server_response', 402 => 'client_response'
  }

  VIEW_MAP.each do |status_code, view|
    retrieve_deal(status_code)
    it 'renders the #{view} template for status code #{status_code}' do
      get :show, params: { id: 'id' }
      expect(response).to render_template(view)
    end
  end
end

, где retrieve_deal метод проверяет вызов API с кодом состояния и отправляет ответ контроллеру.

Однако последний шаблон ('client_response') отображается для всех тестов. Любые идеи, где я иду не так?

1 Ответ

0 голосов
/ 08 ноября 2018

Я думаю, что каждая итерация должна быть в context, а:

retrieve_deal(status_code)

должна быть в чем-то вроде before.

...