2016-06-22 16 views
1

オブジェクトが特定のメッセージを何回受信したかをテストで確認できますか?私の目標は、クラスが同じ回数だけ2つのクラスメソッド呼び出しを受け取ったことをテストすることです。受信したメッセージのアクセス数は?

論理的には、このカウントはコードが実行されるときにどこかに格納されるようです。

これは

allow(SomeClass).to receive(:method_1).at_least(1).times 
allow(SomeClass).to receive(:method_2).at_least(1).times 

# setup and code here 

expect(method_1_received_times).to eq (method_2_received_times) 

答えて

3

のようなものは非常にきれいではありませんになりますが、あなたはこのように、独自のカウンタを設定することができます:私はあなたがブロックを渡すことができます実現していない、

@method_1_received_count = 0 
@method_2_received_count = 0 
allow(SomeClass).to receive(:method_1) { @method_1_received_count += 1 } 
allow(SomeClass).to receive(:method_2) { @method_2_received_count += 1 } 

# setup and code here 

expect(@method_1_received_count).to eq(@method_2_received_count) 
+0

クール感謝を許可/受信する。 –

関連する問題