使用 RSpec 测试私有字段

Test private field with RSpec

假设我有这样一个 class:

class A
  def initialize(arg)
    @arg = arg
  end
end

a = A.new(123)

是否可以在不更改此代码的情况下使用 RSpec 测试 @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