呈現我的應用測試出現問題。現在它已經停留了很長時間,我甚至想知道爲什麼我會測試它(因爲在測試之外,它完美地工作!)?RoR - 測試錯誤 - 預計<「categories/new」>但使用<[]>
所以這裏的錯誤:
$耙測試 運行選項:--seed 1855
`#運行:
.F
失敗: CreateCategoriesTest#test_invalid_category_submission_results_in_failure [/ Users/user/Documents/ruby_project/rails_projects/alpha-blog/test/integration/cr eate_categories_test.rb:17]: 期待< 「類別/新建」>但是< []>
斌/軌試驗測試/集成/ create_categories_test.rb渲染:15
˚F
失敗: CreateCategoriesTest#test_get_new_category_form_and_create_category [/Users/user/Documents/ruby_project/rails_projects/alpha-blog/test/integration/create_categories_test.rb:7]: 期待< 「類別/新」>但< []渲染>
斌/軌試驗測試/集成/ create_categories_test.rb:5
.........
在0.638134s,18.8048運行/秒,25.0731斷言/秒完成。12點運行, 16斷言,2次失誤,0失誤,0跳過
測試看起來像:
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: "sports"}}
follow_redirect!
end
assert_template 'categories/index'
assert_match 'sports', response.body
end
test "invalid category submission results in failure" do
get new_category_path
assert_template 'categories/new'
assert_no_difference 'Category.count' do
post categories_path, params: { category: {name: " "}}
end
assert_template 'categories/new'
assert_select 'h3.panel-title'
assert_select 'div.panel-body'
end
end
和控制器:
class CategoriesController < ApplicationController
before_action :require_admin, except: [:index, :show]
def index
@categories = Category.paginate(page: params[:page], per_page: 5)
end
def new
@category = Category.new
end
def create
@category = Category.new(category_params)
if @category.save
flash[:success] = "La nueva categoria se creó correctamente"
redirect_to categories_path
else
render 'new'
end
end
def index
@categories = Category.paginate(page: params[:page], per_page: 5)
end
def show
end
private
def category_params
params.require(:category).permit(:name)
end
def require_admin
if !logged_in? || logged_in? and !current_user.try(:admin?)
flash[:danger] = "Solamente el admin puede acceder a esta seccion"
redirect_to categories_path
end
end
end
只給你幾個正視我迄今爲止解決我的問題所做的工作(因爲它出現之前),我已經替換了「獲取新類別表單並創建類別」的這一部分:
post_via_redirect categories_path, category: {name: "sports"}
由:
post categories_path, params: { category: {name: "sports"}}
follow_redirect!
爲測試 「失敗無效類別提交結果」 我取代:
post categories_path, category: {name: " "}
由:
post categories_path, params: { category: {name: " "}}
而且我之前的工作對應用程序的使用(在控制器中)設置了限制:
before_action :require_admin, except: [:index, :show]
[...]
def require_admin
if !logged_in? || logged_in? and !current_user.try(:admin?)
flash[:danger] = "Solamente el admin puede acceder a esta seccion"
redirect_to categories_path
end
end
有沒有人有什麼想法發生了什麼?提前致謝!