用RSpec测试私有字段



假设我有这样一个类:

class A
def initialize(arg)
@arg = arg
end
end
a = A.new(123)

是否有可能在不更改此代码的情况下测试@arg的值?

是。使用instance_variable_get方法:

irb(main):014:0> a = A.new(123)
irb(main):015:0> a.instance_variable_get(:@arg)
=> 123

https://apidock.com/ruby/v2_5_5/Object/instance_variable_get

最新更新