Я новичок в тестировании стратегий и насмешек, и мне тяжело понять, как смоделировать вызов во внешнюю службу. Я уверен, что мне чего-то не хватает, я просто не знаю, что именно.
Я использую драгоценный камень Braintree, чтобы взимать плату за услуги подписки через шлюз Braintree, и я хотел высмеять метод создания клиента и метод создания подписки в методе создания моего UserController.
Метод 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(...)
Но что происходит в области возвращения? Нужно ли создавать собственный макет Успешного объекта с атрибутами поддельного обработанного результата, или есть более простой способ сделать все это?
Спасибо за любую помощь, которую вы можете предоставить.