簡體   English   中英

如何測試設計參數消毒劑

[英]How do I test a devise parameter sanitizer

我已經實現了下面的代碼,所以我可以通過強參數更新用戶屬性。 它直接來自devise的文檔,我理解得很好。

然而問題是我真的很擅長測試。 我正在使用SimpleCov,它告訴我u.permit位沒有被覆蓋。 不幸的是,我不太確定如何測試這個。

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

我該如何測試呢?

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

假設您想使用單元測試對此進行測試,並且在方法定義中包含此代碼,則可以模擬對象並存根某些方法。

也就是說,我不認為單元測試適合於此( betterspec.org也不適用 )。

由於此代碼依賴於第三方庫,我認為這是您應該使用集成測試的地方。 因此,我將通過測試使用此代碼的更高級別概念來解決此問題; 在不知道代碼的作用的情況下,我會假設帳戶創建和帳戶更新。 假設這兩個場景是使用代碼的實例,我會為這兩個用例創建功能或請求測試。

Thoughtbot有一篇關於使用Rspec和Caypbara進行功能測試的文。

Rspec relish文檔涵蓋了功能規范請求規范

如果我在你的鞋子里,我會跳過請求規范並專注於功能規格,但我只是單元測試和高級功能測試的忠實粉絲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM