2011-04-12 22 views

cevap

3

RSpec Mocks ile 2.6.0 öncesindeki sürümlerde yapamazsınız. Ancak, any_instance'u Mocha ile (here'da görüldüğü gibi) veya daha sonraki Rspec sürümlerinde kullanabilirsiniz.

config.mock_with :mocha

uncommented: senin spec/spec_helper.rb

yılında

emin bu satırı olduğundan emin olun.

+4

Asıl soru "RSpec dalga geçer kullanarak" olması gözönüne alındığında ben cevap "RSpec dalga geçer kullanmayın" emin değilim yararlıdır. Sonra tekrar, teknik olarak doğru cevaptan daha iyidir: bunu yapamazsınız. –

+0

çok doğru, güncellenmiş cevap. –

+1

Yukarıdaki test aslında Rspec'in kendisinden bir testtir [link] (https://github.com/rspec/rspec-mocks/blob/master/spec/rspec/mocks/any_instance_spec.rb#L124). Ve AnyInstance modülü (mocks.rb): 'Class.class_eval {include RSpec :: Mocks :: AnyInstance}' aracılığıyla dahil edilir. Sanırım bir şekilde yapmanın bir yolu var. – Andy

30

any_instance kısa bir süre önce rspec'e eklenmiştir, böylece örneğiniz şimdi rspec 2.7'de olduğu gibi benim için çalışmaktadır.

Burada daha any_instance belgeleri geçerli: https://www.relishapp.com/rspec/rspec-mocks/docs/method-stubs/stub-on-any-instance-of-a-class

+0

Resmi belge: http://rubydoc.info/gems/rspec-mocks/RSpec/Mocks/AnyInstance –

+0

Rspec Mocks 3.0 doc: [https: //www.relishapp com/RSpec/RSpec-mocks/docs/çalışma-Yerleşik-kodu/bir örnekli] (https://www.relishapp.com/rspec/rspec-mocks/docs/working-with-legacy-code/ herhangi bir-örnek) – user650654