8

我有一个具有以下初始化方法的类。

def initialize(my_var)
  @my_var = my_var
end

我想测试然后做某事的方法@my_var

def split
  @my_var.split(",")
end

@my_var在测试它是否正确返回数组之前如何更改?

如果没有访问器,这可能@my_var吗?

4

1 回答 1

25

这听起来不像是正确的做法。Rspec 应该测试你的类和模型的接口行为——而不是内部实现(实例变量无疑是)。有很多方法可以做到这一点,但您确定您不想拥有该变量的访问器吗?

无论如何,您可以使用my_object.instance_variable_get("@my_var")my_object.instance_variable_set("@my_var", value)操作变量。

于 2012-10-25T13:24:35.223 回答