2017-01-16 72 views
0

我的模型中有一個before_validation回調函數。我無法找到如何編寫minitest rails中的回調測試用例。使用minitest rails測試回調

test 'callback set_slug before_validation' do 
    company = Company.new(name: 'test') 
    mock_method = MiniTest::Mock.new 
    mock_method.expect :set_slug, 'clickapps1' 
    company.stub :set_slug, 'clickapps1' do 
    company.valid? 
    end 
    mock_method.verify 
end 
+1

如果你用Google搜索,你可以找到這篇文章:http://stackoverflow.com/questions/23293021/check-method-call-on-model-using-minitest –

+0

我已經試過這個和解決方案給出的你提到的鏈接不工作。 –

+0

如果您可以提供您嘗試過的以及哪些不能正常工作的代碼示例,我們可以更好地提供一些指示。 –

回答

3

我用摩卡寶石,然後我的測試情況是這樣的:

test 'callback set_slug before_validation' do 
    company = Company.new(name: 'test') 
    company.expects(:set_slug) 
    company.valid? 
end 

,現在它的工作原理。

+0

聖牛!互聯網充滿了crapy嘲笑解決方案。這實際上是真實的情景!它就像一個魅力! –

+0

是的,不要試圖以另一種方式做它。這是迄今爲止最簡單和最快的。 –