题
我遵循了设计GitHub页面的建议:
现在这很好,但是您如何测试您现在有这种行为?
解决方案
好吧,有两种方法可以通过在继承应用程序控制器的控制器中编写测试在单位级别进行测试。代码看起来像
it "should redirect to page_x after logged in" do
sign_in :user_role, @user
set_devise_mapping(:user_role)
get :new
response.should redirect_to(user_roles_dashboard_path)
end
对于Cucumber,您可能应该编写一个步骤来进行登录并断言是否在签名页面之后的预期。
其他提示
嗯...我认为您应该编写自己的集成测试来检查行为。如果您不弄乱设计代码,则无需单位测试或功能测试。
如果您只是使用迷你测试,那将是这样的:
require 'test_helper'
class SessionsControllerTest < ActionDispatch::IntegrationTest
include Devise::Test::IntegrationHelpers
test "admins should be redirected to comments_url" do
sign_in(users(:one))
post user_session_url
assert_redirected_to comments_url
end
test "No admins should be redirected to root_path" do
sign_in(users(:two))
post user_session_url
assert_redirected_to root_url
end
end
不隶属于 StackOverflow