Я написал код, который вызывает вызовы API SalesforceIQ. Теперь я пытаюсь выполнить тестирование моего кода (написав единичный тест для каждой из моих функций). Я немного не уверен, как это сделать, поскольку мне нужно сделать что-то, чтобы избежать вызовов API.Тестирование модуля Python: устранение вызовов API
Вот пример функции Я пытаюсь тест:
def update_contact(name, phone, address, contact_id):
contact = Contact(contact_id)
set_contact_fields(contact, name, phone, address)
return contact.update()
contact.update()
является вызов API. Поэтому я бы хотел избежать вызова contact.update()
, пока тестирование update_contact
обновляет эти три поля (имя, телефон, адрес).
Любые рекомендации по поводу этого?
Спасибо!
Я читаю документы, но не мог бы вы немного доработать? Благодаря! – bclayman
Временно (для продолжительности теста) заменяет метод экземпляром 'MagicMock'. «MagicMock» - это объект, с которым вы можете свободно манипулировать (например, установить возвращаемое значение, заставить его создавать исключения, задавать свойства и т. Д.) И утверждать на него вызовы. Этот объект передается в качестве первого аргумента вашей тестовой функции, чтобы вы могли проверить, как используется тестируемый код. – Anonymous
Спасибо за помощь. Я не полностью следую вашему примеру. Вы вызываете «update_contact», а затем утверждаете, что обновление вызывается один раз. Но у меня нет метода обновления, у меня есть метод update_contact ... – bclayman