0

我是RSPEC的新手,正在测试控制器。 有时候碰巧测试单独逝者如斯一起跑步但单独通过时测试失败

rspec spec/controllers/controller_name_spec.rb 

它传递但是当我运行: - 是较早通过

rspec spec 

测试失败,同样的测试。

可能是什么原因,它与rspec的可伸缩性或特定于应用程序的问题有关。 正如我发现与集成测试相同的问题。 滑轨-v => 3.2.11 红宝石-v => 1.9.2p320 Rspec的护栏版本=> 2.13.0 rspec的版本=> 2.13.0

例如: -

测试用例: -

it "should do ##something##" do 
    plans=Plan.pluck(:id) 
    plans.delete(@user.subscription.plan.id) 
    @user.subscription.stripe_customer_token= "cus_1l9m6CicQEXZJ0" 
    @user.save 
    get 'apply_change_account', {:subscription=>{:plan_id=>plans.sample}} 
    flash.now[:success].should_not be_nil 
    response.should redirect_to dashboard_manage_accounts_path 
end 

响应错误消息: -

1) DashboardController Dashboard should do ##something## 
    Failure/Error: flash.now[:success].should_not be_nil 
     expected: not nil 
      got: nil 
    # ./spec/controllers/dashboard_controller_spec.rb:119:in `block (2 levels) in <top (required)>' 

预先感谢

+0

请测试代码和失败消息。 – 2013-05-03 08:58:16

+0

@BillyChan编辑并添加了测试用例和响应。 – 2013-05-03 09:07:40

+0

我能想到的唯一原因是数据库在测试过程中没有被清除。也许你可以检查是否属实,然后安装database_cleaner gem。 – 2013-05-03 09:16:00

回答

1

尝试在块前添加flash.clear以进行与闪存相关的每个测试。

这可能会也可能不会解决问题,但重要的是要测试闪光灯相关项目以避免闪光灯物体被污染。

相关问题