Как написать тест rspec для метода контроллера, который отображает только HTML? - PullRequest
0 голосов
/ 08 июня 2018

Мои route.rb:

Rails.application.routes.draw do
  root 'application#hello'
end

Мой application_controller.rb:

class ApplicationController < ActionController::Base
  def hello
    render html: "Hello, world!"
  end
end

Я пробовал эту спецификацию, но она не работает:

RSpec.describe ApplicationController do
  render_views

  describe '#hello' do
    it 'renders hello world' do
      get :hello_world

      expect(response.body).to include("Hello, world!")
    end
  end
end

Я получаю эту ошибку:

Failures:

  1) ApplicationController#hello renders hello world
     Failure/Error: get :hello_world

     ActionController::UrlGenerationError:
       No route matches {:action=>"hello_world", :controller=>"application"}

Как мне написать тест Rspec, чтобы проверить, что этот метод отображает этот HTML-код?

1 Ответ

0 голосов
/ 08 июня 2018

Ошибка говорит о том, что он не может найти маршрут hello_world, попробуйте изменить

it 'renders hello world' do
  get :hello_world

  expect(response.body).to include('hello world')
end

на

it 'renders hello world' do
  get :hello

  expect(response.body).to include('hello world')
end

и посмотрите, поможет ли это

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