【问题标题】:List content into Ruby variable将内容列出到 Ruby 变量中
【发布时间】:2018-09-28 09:01:57
【问题描述】:

我想使用 binding.pry 来访问对象中的对象和变量。我试过这个:

[1] pry(#<RSpec::ExampleGroups::WechatRequestBuilder::Submit>)> request_builder
=> #<WechatRequestBuilder:0x007fba3f1a7560 @env="test_env", @request_modifier=#<RequestModifier:0x007fba3f1a7510>>
[2] pry(#<RSpec::ExampleGroups::WechatRequestBuilder::Submit>)> WechatRequestBuilder:0x007fba3f1a7560
SyntaxError: unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
[2] pry(#<RSpec::ExampleGroups::WechatRequestBuilder::Submit>)> 

如何列出WechatRequestBuilder:0x007fba3f1a7560的内容并查看所有变量?

我应该创建什么expect 语句?大概:expect(request_builder.WechatRequestBuilder).to receive(anything)

【问题讨论】:

    标签: ruby rspec


    【解决方案1】:

    request_builder 已经是您要检查的实例。方法如下:

    ▶ class Foo
    ▷   attr_reader :foo, :bar
    ▷   def initialize(foo:, bar:)
    ▷     @foo = foo
    ▷     @bar = bar
    ▷   end  
    ▷ end  
    ▶ foo = Foo.new(foo: 42, bar: :foo)
    #⇒ #<Foo:0x00564c1db7bed8 @bar=:foo, @foo=42>
    ▶ foo.instance_variables
    #⇒ [:@foo, :@bar]
    ▶ foo.instance_variables.map { |v| [v, foo.instance_variable_get(v)] }.to_h
    #⇒ {:@foo=>42, :@bar=>:foo}
    

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多