dbl*_*ons 4 tdd controller rspec ruby-on-rails stubbing
我的会话控制器中有一个变量.
session[:facebook_profile_id] = @user_info['id']
Run Code Online (Sandbox Code Playgroud)
@user_info ['id']是一个int.示例:123
然后,我在主控制器中使用该会话变量从数据库中获取配置文件对象.
def show
@facebook_profile = FacebookProfile.find_by_facebook_id(session[:facebook_profile_id])
end
Run Code Online (Sandbox Code Playgroud)
使用会话变量找到新对象并在我的应用程序中使用,因此我的rspec测试在没有它的情况下失败.
这是我的工作室FacebookProfile:
FactoryGirl.define do
factory :facebook_profile do |f|
f.facebook_id 123
end
end
Run Code Online (Sandbox Code Playgroud)
在我对应用程序的规范测试中,我在每次测试之前创建了Factory实例:
FactoryGirl.create(:facebook_profile).should be_valid
Run Code Online (Sandbox Code Playgroud)
如何在我的规范测试中设置session [:facebook_profile_id]变量,以便@facebook_profile的查找不会失败?
我试过抄袭,但无法让它发挥作用.另外,我一直在我的功能规范中尝试这个.我应该在控制器规范中这样做吗?
如果您的目的是功能测试,那么在测试中直接分配它很简单
# describe .....
session[:facebook_profile_id] = 123
# end
Run Code Online (Sandbox Code Playgroud)
分配后,您也可以直接获取变量
session[:facebook_profile_id]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4779 次 |
| 最近记录: |