簡體   English   中英

如何在我的rspec測試中設置變量,以便控制器可以使用它來進行查詢?

[英]How do I set a variable in my rspec test so that it can be used by the controller for a query?

我的會話控制器中有一個變量。

session[:facebook_profile_id] = @user_info['id']

@user_info ['id']是一個int。 示例:123

然后,我在主控制器中使用該會話變量從數據庫中獲取配置文件對象。

def show
    @facebook_profile = FacebookProfile.find_by_facebook_id(session[:facebook_profile_id])
end

使用會話變量找到新對象並在我的應用程序中使用,因此我的rspec測試在沒有它的情況下失敗。

這是我的工作室FacebookProfile:

FactoryGirl.define do 
  factory :facebook_profile do |f|
    f.facebook_id 123
  end
end

在我對應用程序的規范測試中,我在每次測試之前創建Factory實例:

FactoryGirl.create(:facebook_profile).should be_valid

如何在我的規范測試中設置session [:facebook_profile_id]變量,以便@facebook_profile的查找不會失敗?

我試過抄襲,但無法讓它發揮作用。 另外,我一直在我的功能規范中嘗試這個。 我應該在控制器規范中這樣做嗎?

如果您的目的是功能測試,那么在測試中直接分配它很簡單

# describe .....
  session[:facebook_profile_id] = 123
# end

分配后,您也可以直接獲取變量

session[:facebook_profile_id] 

暫無
暫無

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

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