2016-11-24 2 views
0

MinitestでMochaを使用して別のスタブを返す関数をスタブしたいとします。 これは私がbyebugでコードを実行すると、@instanceが定義されているコードMinitest/Mocha入れ子のスタブ

@instance = stub('instance') do 
     stubs(:destroy).returns(true) 
     stubs(:id).returns(0) 
end 
find_by_id = stub do 
     stubs(:find_by_id).returns(nil) #default 
     stubs(:find_by_id).with(@instance.id).returns(@instance) 
    end 
@user.stubs(:instances).returns(find_by_id) 

です:

(byebug) @instance 
#<Mock:instance> 

しかし、find_by_id内=スタブ

(byebug) @instance 
nil 

を行う私が読んhereスタブの代わりにモックを使用していますが、どちらも動作しません。

ブロックの中に@instanceがnilでない理由はありません。それは前に定義した通りです。

答えて

0

明らかに調査中です。 source

今のところ、 '@instance'の代わりに 'instance'を使用するだけで修正できます。