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 に答える