簡體   English   中英

在RSpec請求規范中存根控制器動作

[英]Stubbing controller actions in RSpec request specs

我正在為服務器錯誤編寫API測試用例。 我想對控制器操作進行存根以引發錯誤以模擬服務器錯誤(500)。 在請求規范中,未設置controller變量。

it "Should return 500 upon server error" do
  controller.stub(:index).and_raise(ArgumentError) 
  get "/users.json"
  response.code.should eq("500")
end

我最終使用any_instance對控制器方法進行了存根any_instance

it "Should return 500 upon server error" do
  UsersController.any_instance.stub(:index).and_raise(ArgumentError)
  get "/users.json"
  response.code.should eq("500")
  response.body.should have_json_path("error")
end

注意:

在請求規范中存根控制器方法沒有任何意義。 但是...在這種情況下,我使用請求規范套件作為接受標准。 要求之一是確保所有錯誤代碼和消息均與API設計匹配。我能夠誘使服務器引發API設計中指定的所有HTTP錯誤代碼。 唯一的例外是internal server error(ie 500) 我沒有辦法誘導控制器引發此錯誤。 由於我正在測試錯誤回復,並且由於此回復與異常的位置和來源無關,所以我決定將其存根。

它實際上是一個實例變量: @controller

暫無
暫無

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

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