макет
Mocks — це об’єкти, які зберігають виклики методів. Його називають динамічними оболонками для залежностей, які використовуються в тестах. Він використовується для запису та перевірки взаємодії між класами Java. Макет відомий як найпотужніша та найгнучкіша версія тесту дублів. Ми використовуємо метод для глузування називається макет() .
Основна функція використання імітацій полягає в тому, що вона дає повний контроль над поведінкою імітованих об’єктів. Імітаційні об'єкти зазвичай використовуються для перевірка поведінки . Термін поведінка означає перевірку правильних методів і шляхів, які застосовуються до об’єктів.
centos проти redhat
Макети здебільшого створюються за допомогою бібліотеки або фреймворку для моделювання, наприклад Mockito, JMock і EasyMock. Він використовується для тестування великого набору тестів, де заглушок недостатньо. Однією з важливих функцій mock є те, що ми можемо перевірити, скільки разів викликається даний метод.
Наступний фрагмент коду показує, як використовувати mock().
ToDoService doService = mock(ToDoService.class);
заглушка
Заглушки — це об’єкти, які містять попередньо визначені дані та використовують їх для надання відповідей під час тестування. Іншими словами, заглушка - це об'єкт, який нагадує реальний об'єкт з мінімальною кількістю методів, необхідних для тесту. Заглушки використовуються, коли ми не хочемо використовувати об’єкти, які б давали відповідь з реальними даними. Найлегшою називають заглушку, а найстатичнішою версією тесту є дублі.
Основними функціями заглушок є:
алгоритм сортування купи
- Він завжди повертає попередньо визначений вихід незалежно від введення.
- Його можна використовувати для схожості на об’єкти бази даних.
- Заглушки використовуються для зменшення складності, яка виникає під час створення реальних об'єктів. В основному вони використовуються для виконання державна перевірка .
Шпигун
Шпигуни відомі як частково макет об'єктів . Це означає, що шпигун створює частковий об’єкт або наполовину манекен справжнього об’єкта шляхом заглушки або шпигування справжніх об’єктів. Під час шпигування справжній об’єкт залишається незмінним, і ми лише спостерігаємо за деякими його методами. Іншими словами, ми беремо існуючий (реальний) об'єкт і замінити або шпигун лише деякі його методи.
Шпигуни корисні, коли у нас є величезний клас, повний методів, і ми хочемо висміяти певні методи. У цьому сценарії ми повинні віддати перевагу використанню шпигунів, а не макетів і заглушок. Він викликає справжню поведінку методу, якщо методи не заглушені.
У Mockito метод spy() використовується для створення шпигунських об’єктів. Це дозволяє нам викликати звичайні методи реального об'єкта. У наведеному нижче фрагменті коду показано, як використовувати метод spy().
List spyArrayList = spy(ArrayList.class);
Різниця між Stub і Mock
Параметри | заглушка | макет |
---|---|---|
Джерело даних | Джерело даних заглушок жорстко закодовано. Зазвичай він тісно пов’язаний із набором тестів. | Дані про макетах встановлюються тестами. |
Створений | Заглушки зазвичай пишуться від руки, а деякі створюються за допомогою інструментів. | Макети зазвичай створюються за допомогою бібліотек сторонніх розробників, таких як Mockito, JMock і WireMock. |
Використання | Заглушки в основному використовуються для простих наборів тестів. | Макети в основному використовуються для великих наборів тестів. |
Графічний інтерфейс користувача (GUI) | Заглушки не мають графічного інтерфейсу. | Mocks мають графічний інтерфейс. |
Нижче наведено деякі відмінності між макетом і шпигуном:
Параметри | макет | Шпигун |
---|---|---|
Використання | Макети використовуються для створення повністю фіктивних або фіктивних об’єктів. В основному використовується у великих наборах тестів. | Шпигуни використовуються для створення часткових або напівмакетів об'єктів. Як і макет, шпигуни також використовуються у великих наборах тестів. |
Поведінка за замовчуванням | Під час використання фіктивних об’єктів поведінка методів за замовчуванням (якщо вони не заглушені) — нічого не робити (нічого не виконувати). | Під час використання шпигунських об’єктів поведінка методів за замовчуванням (якщо вони не закріплені) є справжньою поведінкою методу. |
У наших попередніх уроках ми обговорювали деякі приклади заглушки, глузування та шпигунства. Щоб краще зрозуміти різницю між заглушкою, глузуванням і шпигунством, перегляньте приклади.