2013-07-10 12 views
67

Aşağıdaki kod parçası almak için) (beklemek beklendiği gibi çalışır :Object.any_instance should_receive vs

expected: 1 time with any arguments 
received: 0 times with any arguments 

Bu çalışmayı alma() ile nasıl alabilirim?

cevap

141

expect_any_instance_of adlı, any_instance özel durumunu ele alan çok iyi belgelenmiş bir yöntem yok. Sen kullanmalıdır:

expect_any_instance_of(Object).to receive(:subscribe) 

tarihinde expect_any_instance_of fazla bilgi için. "Çok iyi belgelenmemiş" için

+0

+1. Hala durum. http://www.rubydoc.info/gems/rspec-mocks/RSpec/Mocks/ExampleMethods:expect_any_instance_of – johngraham

+0

'allow_any_instance_of' kullanıyordum. Bu yöntemin bir takma adı mı? – rubyprince

+0

@rubyprince Farklı davranış yöntemleri ile izin verme davranışları ve davranış için test yöntemleri beklemekten farklıdırlar. Örneğin, 'izin ver (my_obj) .to (: method_name) .and_return (true)' stubs 'my_obj.method_name()' eğer testte çağrılırsa, sadece 'true' döndürür. 'bekliyor (my_obj) .to (: method_name) .and_return (true)' herhangi bir davranışı değiştirmez, ancak "my_obj.method_name()" daha sonra çağrılmazsa başarısız olması için bir test beklentisi oluşturur. test edin veya doğru değil. – Saigo

İlgili konular