使用 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
假设我有这样一个 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