Я использую minitest в Rails для тестирования, но столкнулся с проблемой, с которой, я надеюсь, мне поможет более опытный тестировщик, потому что я пытался искать ответ везде, но, похоже, никто столкнулся с этой проблемой или, если они столкнулись, они выбрали интеграционный тест.
Допустим, у меня есть контроллер с именем Foo
и действие в нем с именем bar
. Итак, файл foo_controller.rb
выглядит так:
class FooController < ApplicationController
def bar
render 'bar', :layout => 'application'
end
end
Дело в том, что я не хочу, чтобы люди напрямую обращались к маршруту «foo/bar». Итак, у меня есть маршрут get 'baz' => 'foo#bar'
.
Теперь я хочу протестировать FooController:
require 'minitest_helper'
class FooControllerTest < ActionController::TestCase
def test_should_get_index
get '/baz'
end
end
Но тест приводит к ошибке, что No route matches {:controller=>"foo", :action=>"/baz"}
. Как указать контроллер для запроса GET?
Извините, если это глупый вопрос. Мне было очень трудно найти ответ.