我有一个具有以下初始化方法的类。
def initialize(my_var)
@my_var = my_var
end
我想测试一下这个方法,然后对@my_var
def split
@my_var.split(",")
end
如何在测试之前更改@my_var
它是否正确返回数组?
如果没有@my_var
的访问者,是否可以这样做?
答案 0 :(得分:25)
这听起来不像是正确的做法。 Rspec应该测试类和模型的接口行为 - 而不是内部实现(毫无疑问是实例变量)。有办法做到这一点,但你确定你不想拥有该变量的访问者吗?
无论如何,您可以使用my_object.instance_variable_get("@my_var")
和my_object.instance_variable_set("@my_var", value)
来操纵变量。