Макети са централно средство в софтуерната разработка, за да се опростят тестовете и да се контролират зависимостите. Особено при работа с външни API, тестването може да бъде донякъде трудно, тъй като трябва да се разчита на наличността и поведението на тези услуги. Използването на макети позволява да симулирате и контролирате тези зависимости. Така имате пълен контрол върху връщаните стойности и можете да провеждате тестове, дори когато липсва интернет връзка.

Най-важни находки

  • Макетите помагат за симулиране на външни зависимости.
  • Те позволяват да се провеждат тестове независимо от наличността на външни услуги.
  • Замяната на истински API извиквания с макети ускорява процеса на тестване.

Ръководство стъпка по стъпка

1. Създайте примерен проект

Първо създайте нов Python проект, в който можете да реализирате прост пример за време. В този пример ще симулирате извикване на API, което трябва да получи температура от услуга за времето. За начало ще ви е нужна функция, която извиква температурата.

Ефикасно използване на макети в Python

2. Създайте функция за извикване на температурата

Имплементирайте функция, която извиква стойност от външен API. В този случай ще приемете температурата като 18.1 градуса Целзий, за да можете по-късно да тествате условията.

Ефективно използване на макетите в Python

3. Имплементирайте логиката за условията

Сега напишете проста логика, която оценява температурата. Трябва да се провери дали е горещо, топло или студено. Определете прости граници за тази оценка: над 28 градуса е горещо, над 18 градуса топло и всичко под това е студено.

Эфективно използване на макети в Python

4. Настройте макетите

За да замените зависимостта от API, ще ви трябва модулът unittest.mock. С него можете да пренасочите функцията за извикване на температурата, така че тя винаги да връща предварително зададена стойност. Импортирайте mock и създайте версия на макета на вашата температурна функция.

5. Приложете макетите

Определете в този момент стойностите за връщане на функцията за макети. Да предположим, че искате първо да се уверите, че функцията връща 18 градуса. С това можете да проверите теста на условието за студ.

Ефикасно използване на макети в Python

6. Напишете тестове за различни сценарии на температура

Създайте няколко теста, за да обхванете различните ефекти от температурата. Например: един тест за връщане на 18 градуса (студено), един за 22 градуса (топло) и един за 32 градуса (горещо). По този начин ще се уверите, че логиката ви работи коректно във всички случаи.

Ефективно използване на макети в Python

7. Изпълнете тестовете и проверете резултатите

Изпълнете тестовете и проверете дали подходът с макетите е успешен. Всички тестове трябва да потвърдят, че определените от вас граници в контролата на температурата функционират. Така показвате, че настройката ви е коректна и зависимостите успешно са избегнати.

Ефективно използване на макети в Python

8. Размислете за предимствата на макетите

Използвайте този момент, за да размишлявате как макетите ви позволяват да провеждате тестове независимо от външни фактори. Помислете как този метод може да помогне в други проекти и сценарии.

Ефективно използване на макети в Python

Резюме – Използване на макети в Python

Чрез използването на макети вие възвърнахте контрола над вашите тестове. Като сте симулирали зависимостите от API, успяхте да напишете по-стабилни и по-бързи тестове. Това ще улесни бъдещето ви тестване на условия и ще повиши ефективността на вашата софтуерна разработка.

Често задавани въпроси

Как макетите помагат при тестването?Макетите позволяват симулиране на външни зависимости, като по този начин тестовете могат да се провеждат независимо от външни услуги.

Мога ли да използвам макети и за други типове данни?Да, макетите могат да се използват за симулиране на всички видове стойности за връщане, независимо от типа данни.

Макетите полезни ли са само за API заявки?Не, макетите са универсални и полезни за всички видове функции, които имат външни зависимости.