运行 最小测试时出错,期望 <"admin/dashboard"> 但使用 <[]> 渲染
Error while running the minitest, expecting <"admin/dashboard"> but rendering with <[]>
我在测试这段代码时失败了...
指出的错误是“期待 <"admin/dashboard"> 但渲染 <[]>”
集成测试页面代码片段为
require 'test_helper'
class SiteLayoutTest < ActionDispatch::IntegrationTest
def setup
@admin = admins(:admn)
end
test "admin dashboard link" do
get login_admin_path
post login_admin_path, params: { session: { username: @admin.username,
password: 'Ha66y@Air' } }
get admin_dashboard_path
assert_template 'admin/dashboard'
end
end
route.rb中的代码片段是
get '/admin/dashboard', to: 'admin#dashboard'
登录控制器中的代码片段是
def create
admin = Admin.find_by(username: params[:session][:username])
if admin && admin.authenticate(params[:session][:password])
# render 'admin/dashboard'
log_in admin
params[:session][:remember_me] == '1' ? remember(admin) : forget(admin)
redirect_to admin_dashboard_path
else
render 'login/admin'
flash.now[:danger] = 'Invalid email/password combination'
end
end
管理控制器中的代码片段是
def dashboard
redirect_to root_url unless logged_in?
@admin = current_user
end
admins.yml 的代码片段是
admn:
username: "adminm"
password_digest: <%= Admin.digest('admin') %>
应用程序 运行 在服务器中成功。但是,在 运行 测试时发生错误。
redirect_to admin_dashboard_path
行不渲染模板,渲染重定向命令; HTTP 302。然后浏览器立即获取指定页面,这就是手动测试通过的原因。试试 assert_redirected_to
.
我在测试这段代码时失败了... 指出的错误是“期待 <"admin/dashboard"> 但渲染 <[]>”
集成测试页面代码片段为
require 'test_helper'
class SiteLayoutTest < ActionDispatch::IntegrationTest
def setup
@admin = admins(:admn)
end
test "admin dashboard link" do
get login_admin_path
post login_admin_path, params: { session: { username: @admin.username,
password: 'Ha66y@Air' } }
get admin_dashboard_path
assert_template 'admin/dashboard'
end
end
route.rb中的代码片段是
get '/admin/dashboard', to: 'admin#dashboard'
登录控制器中的代码片段是
def create
admin = Admin.find_by(username: params[:session][:username])
if admin && admin.authenticate(params[:session][:password])
# render 'admin/dashboard'
log_in admin
params[:session][:remember_me] == '1' ? remember(admin) : forget(admin)
redirect_to admin_dashboard_path
else
render 'login/admin'
flash.now[:danger] = 'Invalid email/password combination'
end
end
管理控制器中的代码片段是
def dashboard
redirect_to root_url unless logged_in?
@admin = current_user
end
admins.yml 的代码片段是
admn:
username: "adminm"
password_digest: <%= Admin.digest('admin') %>
应用程序 运行 在服务器中成功。但是,在 运行 测试时发生错误。
redirect_to admin_dashboard_path
行不渲染模板,渲染重定向命令; HTTP 302。然后浏览器立即获取指定页面,这就是手动测试通过的原因。试试 assert_redirected_to
.