J'essaie de tester la méthode suivante:
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
où je veux définir l'état de @multi_move, mais je ne veux pas ajouter un accesseur juste pour le test. Existe-t-il un moyen de le faire sans l'accesseur? Merci.
Vous pouvez utiliser Object#instance_variable_get
méthode pour obtenir la valeur d'une variable d'instance de l'objet comme ça:
class Foo
def initialize
@foo = 5 # no accessor for that variable
end
end
foo = Foo.new
puts foo.instance_variable_get(:@foo)
#=> 5
Et Object#instance_variable_set
peut être utilisé pour définir les valeurs des variables d'instance:
foo.instance_variable_set(:@foo, 12)
puts foo.instance_variable_get(:@foo)
#=> 12