ste*_*her 74 ruby rspec instance-variables
我正在尝试测试以下方法:
def unprocess_move(board, move)
if move[0].instance_of?(Array)
multi_move = @multi_move.pop(2).reverse
multi_move.each do |single_move|
unapply_move(board, single_move)
end
else
board = unapply_move(board, move)
end
board
end
Run Code Online (Sandbox Code Playgroud)
我想为@multi_move设置状态,但我不想添加一个仅用于测试的访问器.没有访问器有没有办法这样做?谢谢.
KL-*_*L-7 126
您可以使用Object#instance_variable_get
方法获取对象的任何实例变量的值,如下所示:
class Foo
def initialize
@foo = 5 # no accessor for that variable
end
end
foo = Foo.new
puts foo.instance_variable_get(:@foo)
#=> 5
Run Code Online (Sandbox Code Playgroud)
并且Object#instance_variable_set
可以用来设置实例变量的值:
foo.instance_variable_set(:@foo, 12)
puts foo.instance_variable_get(:@foo)
#=> 12
Run Code Online (Sandbox Code Playgroud)