Интеграционный тест RoR, как исправить ошибку RuntimeError: не перенаправление! 200 ОК - PullRequest
1 голос
/ 05 марта 2020

У меня есть следующий текст интеграции, чтобы создать новую категорию, но по какой-то причине я не могу сделать правильное перенаправление.

require 'test_helper'

class CreateCategoriesTest < ActionDispatch::IntegrationTest

  test "get new category form and create category" do
    get new_category_path
    assert_template 'categories/new'
    assert_difference 'Category.count', 1 do
        post categories_path, params: { category: { name: "measure tension" } }
        follow_redirect!
    end
    assert_template 'categories/index'
    assert_match "measure tension", response.body
  end

end

Ошибка:

Error:
CreateCategoriesTest#test_get_new_category_form_and_create_category:
RuntimeError: not a redirect! 200 OK
     test/integration/create_categories_test.rb:15:in `block (2 levels) in <class:CreateCategoriesTest>'
    test/integration/create_categories_test.rb:11:in `block in <class:CreateCategoriesTest>'


bin/rails test test/integration/create_categories_test.rb:5

Я не знаю, должен ли я изменить что-то в контроллере. Но для лучшего понимания есть код:

def create
 @category = Category.new(category_params)
 if @category.save
   flash[:success] = "Category was created successfully"
   redirect_to categories_path
 else
   render 'new'
 end
end

1 Ответ

1 голос
/ 06 марта 2020
require 'test_helper'

class CreateCategoriesTest < ActionDispatch::IntegrationTest

 test "get new category form and create category" do
  get new_category_path
  assert_template 'categories/new'
  assert_difference 'Category.count', 1 do
    post categories_path, params: { category: { name: "measure tension", description: "this is the description" } }
    follow_redirect!
  end
  assert_template 'categories/index'
  assert_match "measure tension", response.body
 end

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