加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何测试设计参数消毒剂

发布时间:2020-12-17 02:05:39 所属栏目:百科 来源:网络整理
导读:我已经实现了下面的代码,所以我可以通过强参数更新用户属性.它直接来自devise的文档,我理解得很好. 然而问题是我真的很擅长测试.我正在使用SimpleCov,它告诉我u.permit位没有被覆盖.不幸的是,我不太确定如何测试这个. 我正在使用rspec,我想知道是否有人能指
我已经实现了下面的代码,所以我可以通过强参数更新用户属性.它直接来自devise的文档,我理解得很好.

然而问题是我真的很擅长测试.我正在使用SimpleCov,它告诉我u.permit位没有被覆盖.不幸的是,我不太确定如何测试这个.

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

我该如何测试呢?

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

解决方法

假设您想使用单元测试对此进行测试,并且在方法定义中包含此代码,则可以模拟对象并存根某些方法.

也就是说,我不认为单元测试适合于此(nor does betterspec.org).

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

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

Rspec relish文档涵盖了feature specs和request specs.

如果我在你的鞋子里,我会跳过请求规范并专注于功能规格,但我只是单元测试和高级功能测试的忠实粉丝.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读