kullanıyorum bütün bar yöntemi saplama olabilir en ben bu sınıf, birçok parametresi ile saplama bir yolu var mı? Yapamadım,</p> <pre><code>Foo.any_instance.expects(:bar).at_least_once.returns(false) </code></pre> <p>Ancak sadece çubuk yönteminin Param1 doğru olduğunda saplama istiyorsanız:
class Foo
def bar(param1=nil, param2=nil, param3=nil)
:bar1 if param1
:bar2 if param2
:bar3 if param3
end
end
olduğunu varsayalım yapmanın bir yolunu bulun:
Ayrıca baktım ve has_entry ile baktım ve sadece tek bir parametre için geçerli gibi görünüyor.
Böyle bir işlev bekliyordum.
Foo.any_instance.expects(:bar).with('true',:any,:any).returns(:baz1)
Foo.any_instance.expects(:bar).with(any,'some',:any).returns(:baz2)
Teşekkür
...................................... ............. AŞAĞIDAKİ EDİN .................................. ...........
sayesinde, nash
RSpec aşina, bu yüzden any_instance ile birim testi ile çalıştı ve işe görünüyor değil
require 'test/unit'
require 'mocha'
class FooTest < Test::Unit::TestCase
def test_bar_stub
foo = Foo.new
p foo.bar(1)
Foo.any_instance.stubs(:bar).with { |*args| args[0]=='hee' }.returns('hee')
Foo.any_instance.stubs(:bar).with { |*args| args[1]=='haa' }.returns('haa')
Foo.any_instance.stubs(:bar).with { |*args| args[2]!=nil }.returns('heehaa')
foo = Foo.new
p foo.bar('hee')
p foo.bar('sth', 'haa')
p foo.bar('sth', 'haa', 'sth')
end
end
stub yerine beklediğim gibi bir şey olabilir benim için de iyi çalışıyor. Foo.any_instance.expects (: bar) .with {| * args | args [0] == 'hee'} .returns ('hee') – allenhwkim