Deviate wiki在如何测试快捷登录时是正确的,不,您不能只设置
current_user
在测试代码中(也不能访问它,因为它只在请求中设置)。通常假设错误是在使用gem时发生的,而不是使用广泛且经过高度测试的gem有缺陷。
根据您给出的描述,可能有很多原因导致它没有实际登录用户,但最可能的两个罪魁祸首是
-
您是否确实在Deviate中配置了多个作用域?还是应该这样
login_as(admin, :scope => :user)
#相当于仅登录为(admin)
-
是
puma
在单一模式或群集模式下运行测试?(默认情况下,您可能需要禁用puma输出rspec rails的静音功能-
https://github.com/rspec/rspec-rails/blob/95f4522c0549a32de59c19eb9b5f9a72126a9eb6/lib/rspec/rails/example/system_example_group.rb#L72
-要在测试输出中看到这一点),如果它不是在单一模式下,那么该应用程序将在与测试不同的单独进程中运行,这意味着designe实际上无法缩短登录,您需要修复puma配置。