2016-08-10 8 views
2

In RSpec Stub I Methode wie folgt Stummel könnte:Wie ein Verfahren in Active :: Testcase

allow(company).to receive(:foo){300} 

Wie kann ich eine Methode mit ActiveSupport::TestCase Stummel?

Ich habe einen Test wie folgt.

class CompanyTest < ActiveSupport::TestCase 
    test 'foobar' do 
    company = companies(:base) 
    #company.stubs(:foo).returns(300) 
    assert_nil(company.calculate_bar) 
    end 
end 

Antwort

2

Minitest kommt mit einem stub Verfahren aus dem Kasten heraus, Sie im Fall wollen nicht externe Werkzeuge verwenden:

require 'minitest/mock' 
class CompanyTest < ActiveSupport::TestCase 
    test 'foobar' do 
    company = companies(:base) 
    Company.stub :foo, 300 do 
     assert_nil(company.calculate_bar) 
    end 
    end 
end 
2

Minitest hat eine begrenzte Funktionalität für Mocks, aber ich würde vorschlagen, dass das mocha Juwel für diese Art von Stubs verwenden.

Die Syntax für Mokka ist genau das, was Sie auf der kommentierten outen Linie haben:

class CompanyTest < ActiveSupport::TestCase 
    test 'foobar' do 
    company = companies(:base) 
    company.stubs(:foo).returns(300) 
    assert_nil(company.calculate_bar) 
    end 
end 
Verwandte Themen