0

我是 RSPEC 的新手,正在测试控制器。有时会发生测试单独通过,例如

rspec spec/controllers/controller_name_spec.rb

它通过了,但是当我运行时:-

rspec spec

测试失败,与之前通过的相同测试。

可能是什么原因,它与 rspec 的可扩展性或特定于应用程序的问题有关。正如我发现集成测试也存在同样的问题。Rails -v => 3.2.11 Ruby -v => 1.9.2p320 Rspec-rails 版本 => 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)>'

提前致谢

4

1 回答 1

1

尝试添加flash.clear为每个与 flash 相关的测试添加 before 块。

这可能会或可能不会解决问题,但必须测试闪光灯相关项目以避免闪光灯对象被污染。

于 2013-05-03T11:22:28.430 回答