2
导轨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) }
我猜你使用的是一些早该?可能需要更新版本。 – phoet
谢谢@phoet,是的,我正在使用应匹配器。但是我的问题可能比这更笼统(不确定,因为我对Rails 5引入的控制器更改以及现在的Rails方法有些困惑)。看起来,不应该测试控制器内部,并且该控制器规格不是前进的方式https://github.com/rails/rails/issues/18950。从广义上讲,你如何以及在哪里测试一个控制器在Rails 5中允许正确的参数? –
也许你应该改说你的问题呢?我认为摆脱控制器测试赞成集成测试是愚蠢的,但我不是DHH,所以我知道什么... – phoet