我是测试策略和模拟的新手,我很难弄清楚如何模拟对外部服务的调用。我确定这很容易我错过了,我只是不知道到底是什么。
我正在使用 Braintree gem 通过 Braintree 网关对订阅服务收费,我想在我的 UserController 的 create 方法中模拟 Customer create 方法和 Subscription create 方法。
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(...)
但是退货区会发生什么?我是否需要使用伪造的处理结果的属性创建自己的模拟成功对象,还是有更简单的方法来完成所有这些?
感谢您的任何帮助,您可以提供。