我有一个具有以下初始化方法的类。
def initialize(my_var)
@my_var = my_var
end
然后我想测试对 @my_var
def split
@my_var.split(",")
end
如何在测试它正确返回数组之前更改 @my_var
?
如果没有 @my_var
的访问器,这是可能的吗?
最佳答案
这听起来不像是正确的做法。 Rspec 应该测试类和模型的接口(interface)行为——而不是内部实现(无疑是实例变量)。有多种方法可以做到这一点,但您确定不想为该变量设置访问器吗?
无论如何,您可以使用 my_object.instance_variable_get("@my_var")
和 my_object.instance_variable_set("@my_var", value)
来操作变量。
关于ruby - 在 rspec 测试中填充实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069536/