运行一个和所有规格时,Rspec结果不同

时间:2017-02-18 14:02:24

标签: ruby rspec devise ruby-on-rails-5 rspec-rails

这是源代码https://github.com/tenzan/eshop

当我按特定规格运行时 rspec spec/features/application_controller_spec.rb,测试通过。

但是当我通过执行rspec执行所有操作时,它会给出上述规范的错误:

Failures:

  1) Admin::ApplicationController GET #index returns http success
     Failure/Error: expect(response).to have_http_status(:success)
       expected the response to have a success status code (2xx) but it was 302
     # ./spec/controllers/admin/application_controller_spec.rb:8:in `block (3 levels) in <top (required)>'

Finished in 0.61968 seconds (files took 1.53 seconds to load)
12 examples, 1 failure

Failed examples:

rspec ./spec/controllers/admin/application_controller_spec.rb:6 # Admin::ApplicationController GET #index returns http success

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

单独运行的文件不是运行整个套件时失败的文件; - )

rspec spec/features/application_controller_spec.rb - &gt;完全没问题。

rspec spec/controllers/admin/application_controller_spec.rb:6 - &gt;在任何情况下都会失败,因为没有经过身份验证的用户。

还有一些提示:您可以在.rspec文件中使用--require rails_helper代替--require spec_helper,然后您就不需要在每个测试文件中都需要它。还有一个捷径:可以使用简单的describe代替RSpec.describe