2016-12-16 4 views
0

誰でも知っている、どのようにクラス変数の初期化をスタブすることができますか?Rspec 3スタブクラス変数

私は

@@connection = Bunny.new.start 

を定義するための接続数を制限するが、今

allow_any_instance_of(Bunny).to receive(:start) { something } 

ようにそれが動作しない、私はそれをテストする必要がある、と私は一般的な方法でそれをスタブしようとします。変数は@@より早く初期化されます。

また、私はそれを再定義することができます。

before do 
    @@connection = double('conn') 
end 

を私はAMQP

への接続を作成することはできませんし

を解決しているので、それは私のために似合わないIそれをどうやって行うのか分からなかったので、私はバニーモックを使いました。それは私を助けました

+0

これは役立つかもしれない:http://stackoverflow.com/a/20518845/259889 – Sid

+0

おかげで、それは私が必要なものではありません。初期化中にスタブクラス変数が必要です。 –

答えて

0

私はそれが悪い習慣であるかどうか分かりません約:

YourClass.class_variable_set(:@@variable, 'value') 

i。 e。

before do 
YourController.class_variable_set(:@@connection, 'value') 
end 
関連する問題