2017-11-20 7 views
1

ここでは、複数の検証を持つCustomerモデルがあり、その検証の1つが、その人物が存在するかどうかを検証する外部サービスにアクセスします。外部サービスからの検証でモデルをスタブする方法

そしてここで、我々はすべての検証をテストします。最後の項目は、人が存在するかどうかを確認するためにDOC_IDを使用して外部サービスの検証をテスト

describe Customer do 

    it 'is not valid without a name' do 
     customer = build_stubbed(:customer, name: nil) 
     customer.valid? 
     asserts... 
    end 

    it 'is not valid without a full name' do 
     customer = build_stubbed(:customer, name: 'Test') 
     customer.valid? 
     asserts... 
    end 

    if 'should check if user really exists' do 
     customer = build_stubbed(:customer, doc_id: '00000000') 
     customer.valid? 
     asserts.... 
    end 

    other tests... 

が、ここではすべてのテストは、すべての検証が私はしてサービス要求をstub_request必要があります実行します各テストの前にそれをスタブしますか?

答えて

1

stupを使用するテストと使用しないテストを指定するには、contextを使用する必要があります。それは例えばhereとアドバイスされています。この方法では、メソッドがスタブされているコンテキストを持つことができ、他のコンテキストで外部サービスによる検証をテストできます。

関連する問題