Тест интеграции Rails Controller - ожидаемый ответ <2XX: success>, но <500: Internal Server Error> - PullRequest
0 голосов
/ 14 марта 2020

Работа в ruby '2.5.7' и рельсах '5.2.3'.

У меня проблемы с прохождением теста "get index" для моего теста контроллера (код ниже). Я не уверен, в чем проблема, потому что другой тест "получить о" работает просто отлично.

Вот мой файл теста контроллера:

class HomeControllerTest < ActionDispatch::IntegrationTest

  test "should get index" do
    get home_path
    assert_response :success
  end

  test "should get about" do
    get about_path
    assert_response :success
  end

end

Вот результат после запуска "теста рельсов":

HomeControllerTest
  test_should_get_about                                           PASS (0.03s)

HomeControllerTest
  test_should_get_index                                           FAIL (0.13s)
Minitest::Assertion:         Expected response to be a <2XX: success>, but was a <500: Internal Server Error>
        test/controllers/home_controller_test.rb:7:in `block in <class:HomeControllerTest>'

Если это поможет, это мой route.rb файл в папке config:

Rails.application.routes.draw do

  get 'home', to: 'home#index', as: :home
  get 'home/about', to: 'home#about', as: :about

end

Это мой файл home_controller.rb:

class HomeController < ApplicationController
    def index
    end

    def about
    end

end

И, наконец, у меня есть следующие файлы в моем каталоге просмотров:

  • home / about. html .erb
  • home / index. html .erb

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

Спасибо!

1 Ответ

1 голос
/ 16 марта 2020

Я только что осознал свою глупую ошибку?

Спасибо @Vasilisa за указание мне в правильном направлении!

В 'home / index. html .erb' (в моих взглядах каталог), я случайно сослался на другой путь, который не был указан в моем файле «rout.rb». Удаление этого из 'home / index. html .erb' немедленно решило проблему. Это объясняет, почему мой тест "about" работал, но мой тест "index" не был ...

(Раньше я не знал, что тест контроллера будет заботиться о содержимом Views - особенно когда мой тест контроллера такой базовый c.)

...