我已经看到一些SO帖子解释了如何使用pry进入rspec测试并且能够做到这一点。一旦我到达断点,我就很难显示任何有用的信息。对于下面的代码,我想从pry控制台检查响应对象:
describe 'happenings' do
context "#index (GET /api/v1/flat_happenings.json)" do
before(:each) do
30.times { FactoryGirl.create(:flat_happening) }
get "/api/v1/flat_happenings.json"
end
describe "should list all flat_happenings" do
binding.pry
it { JSON.parse(response.body)["flat_happenings"].length.should eq 30 }
end
end
end
关于如何做到这一点的任何想法?
答案 0 :(得分:27)
您应将binding.pry
放在it
区块内。
答案 1 :(得分:13)
要在规范中使用pry,我们需要在spec_helper.rb文件中添加require 'pry'
。然后我们就可以在任何规范中使用binding.pry。
答案 2 :(得分:3)
这应该有效:
describe 'happenings' do
context "#index (GET /api/v1/flat_happenings.json)" do
before(:each) do
30.times { FactoryGirl.create(:flat_happening) }
get "/api/v1/flat_happenings.json"
end
it "should list all flat_happenings" do
binding.pry
JSON.parse(response.body)["flat_happenings"].length.should eq 30
end
end
end
HTH
答案 3 :(得分:0)
我尝试在实际使用时尝试撬开,否则可能会引入一些不寻常的错误(不常见,但可能会发生)
因此,这意味着如果您只想调试特定的测试,则无需在require 'pry'
中使用spec_helper.rb
,而只需在要调试的测试中使用require 'pry'
。
def method_i_am_debugging
puts 'does stuff'
require 'pry'
binding.pry
# ...
end