簡體   English   中英

如何在RSpec測試中使用rails'get'

[英]How to use rails 'get' in a rspec test

在控制器規范內,我有以下代碼...

    subject do
      get 'index'
      puts 'response is ' + response.body
      JSON.parse(response.body)
    end

可以正常工作,獲取特定api控制器的index操作。 但是,當我嘗試顯示請求時,我不知道如何傳遞變量,所以當我運行時...

    subject do
      get 'show'
      puts 'response is ' + response.body
      JSON.parse(response.body)
    end

我得到了錯誤...

 ←[31mFailure/Error:←[0m ←[31mget 'show'←[0m
 ←[31mActionController::RoutingError←[0m:
   ←[31mNo route matches {:controller=>"api/example/v1/clinics", :action=>"show"}←[0m

api / example / v1 / clinics有一個show操作,當然我沒有傳遞它需要的參數,不確定如何去做。 如何執行表演動作?

我嘗試了類似的東西

    get 'api/example/v1/clinics/2'

但這也不起作用。 我似乎也找不到該rails方法的文檔。 任何幫助表示贊賞。 謝謝。

您可以傳入一個ID以get :show by:

get 'show', id: 2

對於需要參數的控制器動作(例如show動作需要“ id”),您需要將其作為參數傳遞給get請求:

get :show, id: 1

或者,如果使用舊的1.8哈希語法:

get :show, :id => 1

暫無
暫無

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

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