呈现我的应用测试出现问题。现在它已经停留了很长时间,我甚至想知道为什么我会测试它(因为在测试之外,它完美地工作!)?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
有没有人有什么想法发生了什么?提前致谢!