2017-01-16 3 views
0

Ich habe einen Rückruf vor dem Rückruf in meinem Modell. Ich kann nicht finden, wie man Testfälle für Rückrufe in den Minitestschienen schreibt.Rückrufe mit Minitest-Schienen testen

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

Wenn Sie googelten, könnten Sie diesen Beitrag finden: http://stackoverflow.com/questions/23293021/check-method-call-on-model-user-minitest –

+0

Ich habe dies bereits versucht und die Lösungen auf der Link, den du erwähnt hast, funktioniert nicht. –

+0

Wenn Sie Code-Beispiele von dem, was Sie versuchten, und was nicht funktioniert, könnten wir einige Hinweise bereitstellen. –

Antwort

3

ich den Mokka Juwel verwendet und dann sieht mein Testfall wie:

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

und jetzt funktioniert es.

+0

heilige Kuh! Das Internet ist voll mit crapy mocking Lösungen. DAS IST WIRKLICH DAS ECHTE SZENARIO! es funktioniert wie ein Charme! –

+0

Ja, stopfen Sie nicht herum und versuchen Sie es auf andere Weise. Dies ist bei weitem die einfachste und schnellste. –