gpt4 book ai didi

ruby Rspec : Testing instance variables without adding an accessor to source

转载 作者:数据小太阳 更新时间:2023-10-29 06:19:36 27 4
gpt4 key购买 nike

我正在尝试测试以下方法:

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

我想为@multi_move 设置状态,但我不想添加仅用于测试的访问器。有没有办法在没有访问器的情况下这样做?谢谢。

最佳答案

您可以使用 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

Object#instance_variable_set可用于设置实例变量值:

foo.instance_variable_set(:@foo, 12) 
puts foo.instance_variable_get(:@foo)
#=> 12

关于 ruby Rspec : Testing instance variables without adding an accessor to source,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9364157/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com