2017-06-22 38 views
0

更新:这实际上工作正常。请忽略此问题如何在RSpec请求规范中运行调试器?

我已经习惯了能够打电话byebug在一个RSpec控制器测试,但这并没有在一个RSpec request spec ....它不会产生错误,但它也没有按”没有任何作用。请求规格中是否有其他方式放入调试器?

如:

# spec/controllers/users_controller_spec.rb 
require 'rails_helper' 
describe UsersController do 
    describe "GET #index logged out" do 
    it "returns 401 when not logged in" do 
     get :index, format: :json_api 
     expect(response).to have_http_status(401) 
     byebug 
    end 
    end 
end 

以上下降到调试器,下面没有:

# specs/requests/users_request_spec.rb 
require 'rails_helper' 
describe "users", type: :request do 
    describe 'GET /users logged out' do 
    it 'returns 401 when not logged in' do 
     get '/users' 
     expect(response).to have_http_status(401) 
     byebug 
    end 
    end 
end 

回答

1

我已经测试您的文件在我的环境

# specs/requests/users_request_spec.rb 
require 'rails_helper' 
describe "companies", type: :request do 
    describe 'GET /companies logged out' do 
    it 'returns 401 when not logged in' do 
     binding.pry # => this stops execution 
     get '/companies.json_api' 
     expect(response).to have_http_status(401) 
     binding.pry # => this does not 
    end 
    end 
end 

理由让我:

Failure/Error: get '/companies.json_api' 

    ActionController::RoutingError: 
     No route matches [GET] "/companies.json_api" 
    # ./spec/requests/users_request_spec.rb:6:in `block (3 levels) in <top (required)>' 

为了达到调试器,应该没有例外。你确定这与你一样吗?

+0

@simon你能让我知道这是否有效? – gates

+1

感谢您的测试。对不起,我应该有'/ users'而不是'/ companies.json_api'。我编辑了这个问题。 –

+0

感谢您对此进行测试!我错了,所以我会更新它来说。我会接受你的回答。 –

相关问题