ruby - 为什么 ruby​​-debug 不允许我在规范中查看局部变量?

标签 ruby rspec

我正在尝试使用 ruby​​-debug 来调试我的规范。当我这样做时,我无法访问局部变量。然而,实例变量就可以了。有没有办法让它与局部变量一起工作?

这是一个示例规范:

require 'spec/autorun'
describe "empty spec" do
  it "should be able to be debugged" do
    x = 'foo'
    @x = 'bar'
    debugger
  end
end

在调试器/irb中,我可以看到@x,但看不到xDetailed output.

这只是使用 ruby​​-debug 和 block 的限制还是我可以为我工作?

(与此同时,我使用的实例变量比我的规范中实际应该使用的要多。)

最佳答案

您引用的示例在 ruby​​-debug 中存在问题。 ruby-debug 有一个限制,它仅在语句“行”事件处停止,并且“调试器”调用是 block 的最后一个语句。因此,在您给出的示例中,当调试器停止时,您不再处于“应该能够被调试” block 中,并且 x 消失了。

程序员似乎使用的一种解决方法是在“调试器”之后但在结束之前放置某种语句。

下一世rbdbgr (对于带补丁的 YARV Ruby 1.9),您可以在从 block 返回之前停止。

关于ruby - 为什么 ruby​​-debug 不允许我在规范中查看局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1759263/

相关文章:

ruby-on-rails - Rails session 存储模型对象

javascript - Capybara 等待页面用 Ruby 完全加载所有元素

rspec - 从之前的内部获取 RSpec 示例组名称(:all) block

ruby-on-rails - 在助手规范中测试当前用户

ruby - 在 Rails 中使用 uuidtools 生成一个短的 UUID 字符串

ruby-on-rails - rails 错误 method_missing':Gem::Specification 的未定义方法 `this'

javascript - Mac 上的 Jekyll 没有管理员访问权限(没有自制软件、Ruby、Rvm、cURL)

ruby-on-rails - 带有 rspec 和 factory_girl_rails 的 Rails 4 安装引擎

ruby-on-rails - 数组 will_paginate rspec 的未定义方法 total_pages'

ruby-on-rails - 在 RSpec 功能规范 (Capybara) 中测试索引 View 排序顺序