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