日々精進

新しく学んだことを書き留めていきます

RSpecでテスト

RSpec使い始めの頃にプライベート変数の値をどうやってテストするかで悩んだことがありました。
色々調べた結果、instance_evalを使えば↓のようにテストできると判明。

@test_obj.instance_eval("@field").should == 1

これは便利・・・だけど、このメソッドを使えばどこからでもプライベート変数やメソッドにアクセスできて危険では?
本番用のコードからはinstance_evalを使用できないようにした方がいいのでは。。