Rails 5在我的测试中引入了一些弃用消息
DEPRECATION WARNING: Using positional arguments in functional tests has been deprecated,
in favor of keyword arguments, and will be removed in Rails 5.1.
Deprecated style:
get :show, { id: 1 }, nil, { notice: "This is a flash message" }
New keyword style:
get :show, params: { id: 1 }, flash: { notice: "This is a flash message" },
session: nil # Can safely be omitted.
在大多数情况下,这些问题很容易解决。消息中的指示非常清晰。
但是我仍然会收到针对测试强大参数的控制器规格的警告。
应该如何重写以下内容以为Rails 5.1做准备?
let(:user) { create :user }
it { is_expected.to permit( :name, :email ).for(:update, params: { id: user.to_param, user: valid_attributes } ).on(:user) }
尝试:
for(:update, params: { params: { id: user.to_param, user: valid_attributes } })
很难看,但是对我有用。
更新:在这里找到我的解决方法和修复号https://github.com/thoughtbot/shoulda-matchers/issues/867
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句