如何使用pry调试器检查rspec变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用pry调试器检查rspec变量相关的知识,希望对你有一定的参考价值。

我已经看到一些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

关于如何做到这一点的任何想法?

答案

你应该把binding.pry放在it区块内。

另一答案

要在specs中使用pry,我们需要在spec_helper.rb文件中添加require 'pry'。然后我们就可以在任何规范中使用binding.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
    it "should list all flat_happenings" do
      binding.pry
      JSON.parse(response.body)["flat_happenings"].length.should eq 30
    end
  end
end

HTH

以上是关于如何使用pry调试器检查rspec变量的主要内容,如果未能解决你的问题,请参考以下文章

使用 Rails.cache 时 Rspec 测试失败,但如果我执行 binding.pry 则通过

如何使用 RSpec 检查 JSON 响应?

ruby 在RSpec中使用哈希来检查不同的变量/值组合

ruby 在RSpec中使用哈希来检查不同的变量/值组合

告诉我你的身份证(E)!

我如何调试Ruby脚本? [关闭]