小编dbl*_*ons的帖子

如何在我的rspec测试中设置变量,以便控制器可以使用它来进行查询?

我的会话控制器中有一个变量.

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的查找不会失败?

我试过抄袭,但无法让它发挥作用.另外,我一直在我的功能规范中尝试这个.我应该在控制器规范中这样做吗?

tdd controller rspec ruby-on-rails stubbing

4
推荐指数
1
解决办法
4779
查看次数

FactoryGirl创作不会出现在硒测试中

我有一个简单的测试用例,如下所示:

describe 'Quiz packs page' do
  before :each do
    FactoryGirl.create(:quiz_pack, :first_in_first_pack).should be_valid
  end
end

it "should have an index page", :js => true do
  visit quiz_packs_path
end
Run Code Online (Sandbox Code Playgroud)

为什么当我使用硒访问quiz_packs_path时,我来自FactoryGirl的特征没有显示为索引页上的条目?

老实说,我读了太多关于FactoryGirl的文章,以至于我的大脑受到了伤害,但是我仍然不太了解创作是如何发生的。

如果有帮助,这是我的测验包。请注意,我使用FactoryGirl特性,因为我有很多这样的东西。如果这是一个问题,请告诉我。

FactoryGirl.define do
  factory :quiz_pack do
    trait :first_in_first_pack do |f|
      f.pack 1
      f.number 1
      f.image "first_image
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

database testing rspec ruby-on-rails factory-bot

0
推荐指数
1
解决办法
923
查看次数