【问题标题】:How do I test a devise parameter sanitizer如何测试设计参数消毒剂
【发布时间】:2013-12-06 02:16:46
【问题描述】:

我已经实现了下面的代码,所以我可以通过强参数更新用户属性。它直接来自设计的文档,我非常了解。

然而,问题是我对测试真的很陌生。我正在使用 SimpleCov,它告诉我 u.permit 位未被覆盖。不幸的是,我不太确定如何对此进行测试。

我正在使用 rspec,我想知道是否有人能指出我正确的方向。

如何对此进行测试?

devise_parameter_sanitizer.for(:account_update) do |u|
  u.permit(:username, :email, :password, :password_confirmation)
end

【问题讨论】:

    标签: ruby-on-rails rspec devise ruby-on-rails-4 strong-parameters


    【解决方案1】:

    假设您想通过单元测试对此进行测试,并且您在方法定义中有此代码,您可以模拟出对象并存根一些方法。

    也就是说,我认为单元测试不适合这种情况 (nor does betterspec.org)。

    由于此代码依赖于第三方库,我认为这是您应该使用集成测试的地方。因此,我将通过测试使用此代码的更高级别的概念来解决此问题;在不知道该代码的作用的情况下,我会假设诸如帐户创建和帐户更新之类的事情。假设这两个场景是使用代码时的实例,我将为这两个用例创建功能或请求测试。

    Thoughtbot 有一个关于使用 Rspec 和 Caypbara 进行功能测试的great blog post

    Rspec relish 文档涵盖feature specsrequest specs

    如果我处于你的位置,我会跳过请求规范并专注于功能规范,但我非常喜欢单元测试和高级功能测试。

    【讨论】:

      猜你喜欢
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      相关资源
      最近更新 更多