1

我正在使用设计登录用户。我想写一些测试来确保一切顺利。我的登录是使用多态关联。

用户可以是雇主或申请人,工作正常。

我正在使用以下代码和 Devise 提供的 sign_in 助手。

 def log_in_applicant
    sign_in UserFactory.applicant 
 end

此代码不会登录用户。但是当我进入 Rails 控制台调试器并编写用户登录的代码时!

4

1 回答 1

0

Devise 不允许您在 TestCase 中使用 sign_in 助手,因此上面的代码永远不会登录用户。

您将需要使用模拟来模拟已登录的使用。

您可以使用 Mocha Gem 并编写以下代码。

 def log_in_applicant
    JobsController.any_instance.stubs(:current_user).returns( UserFactory.applicant)
 end
  • 显然,要登录的用户来自 UserFactory。
  • any_instance.stubs(:current_user) - 表示 :current_user 的任何实例,来自设计的助手应该返回
  • .returns(UserFactory.applicant)
  • JobsController 是对您要测试的控制器的引用。它实际上是对 self.current_user 的一种引用。如果您想了解更多信息,请问我:)
于 2013-04-12T08:24:51.097 回答