2016-11-24 52 views
0

我想在Minitest上存根使用Mocha返回另一個存根的函數。 這是代碼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被定義:

(byebug) @instance 
#<Mock:instance> 

然而,內部find_by_id =存根做

(byebug) @instance 
nil 

我讀here關於使用模擬而不是存根,但這也不起作用。

我不明白爲什麼@instance在之內,之內,因爲它是先前定義的。

回答

0

顯然正在調查中。 source

現在,我可以通過簡單地使用'實例'而不是'@instance'來解決它。