私は戦略のテストとモックに不慣れであり、外部サービスへの呼び出しをモックする方法を理解するのに苦労しています。私が見逃しているのは簡単なことだと確信しています。正確には何がわからないのです。
Braintree gemを使用して、Braintreeゲートウェイを介したサブスクリプションサービスの料金を請求しています。UserControllerのcreateメソッドでCustomercreateメソッドとSubscriptioncreateメソッドをモックしたいと思いました。
Customer.createメソッドは次のようになります。
result = Braintree::Customer.create(
:first_name => @creditcard.first_name,
:last_name => @creditcard.last_name,
:email => @user.email
:credit_card => {
...
}
}
)
これにより、処理された結果の属性を含むBraintree::Successful結果オブジェクトが返されます。
私は次のようなことをしなければならないと思います:
Braintree::Customer.expects(:create).returns(...)
しかし、返品エリアには何が入りますか?偽の処理結果の属性を使用して、独自のモックアップされた成功オブジェクトを作成する必要がありますか、それともすべてを行う簡単な方法がありますか?
あなたが提供できるどんな助けにも感謝します。