2016-08-10 6 views
2

私はこのような方法をスタブできますどのようactivesupportの中にメソッドをスタブに:: TestCaseの

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

私はActiveSupport::TestCaseとメソッドスタブできますか?

私はこのようなテストをしています。

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

答えて

2

Minitestは、あなたがしたい外部ツールを使用しない場合には、箱から出してstub方法が付属しています

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はモックのためのいくつかの機能が制限されていますが、私は、スタブのこれらの種類のmocha宝石を使用してお勧めしたいです。

モカのための構文は、コメントアウト行に持って正確に何である:

class CompanyTest < ActiveSupport::TestCase 
    test 'foobar' do 
    company = companies(:base) 
    company.stubs(:foo).returns(300) 
    assert_nil(company.calculate_bar) 
    end 
end 
関連する問題