いくつかのインスタンス変数といくつかのメソッドを持つクラスがあるとします。一部のインスタンス変数はattr_reader
、およびを介してアクセス可能に設定されていますattr_accessor
。したがって、他はプライベートです。
一部のプライベートインスタンス変数は、インスタンスメソッドの1つで設定され、別のメソッドで読み取られて利用されます。
テストにはRSpecを使用しています。私はまだRubyに慣れておらず、すべてを正しくしたいと思っているので、テストをかなりきめ細かく定義しました。したがってdescribe
、インスタンスメソッドごとに1つのブロックがあり、それ自体がcontext
sとit
sのサブセットに分割されています。一般的な環境の前提条件は、で定義されbefore
ます。
ただし、プライベート変数の1つを使用しているが設定していないメソッドの1つをテストする場合は、この変数を設定しているもう1つのメソッドを呼び出す必要があります。これはかなり太りすぎで、私にはモジュール式ではないようです。
プライベートインスタンス変数を特定の値に強制する方法はありますか?。を使用してプライベートインスタンス変数の値を「リッピング」するのと同様Object::instance_eval(:var)
です。