Урок 7.1Урок 24 з 24
Ефективні юніт-тести
With a block of code and the associated Unit Test, determine where the test is ineffective and modify it to make it more effective.
Головне
- 1Хороший тест падає, коли ламається поведінка. Перевіряйте точне очікуване значення, а не лише те, що результат truthy або що помилки не було.
- 2Кожен тест сам готує свої дані. Тест, який проходить лише після того, як виконався інший тест, не ізольований.
- 3Підставляйте замість годинника, випадкових чисел і мережі значення, які ви контролюєте, щоб результат був однаковим за кожного запуску.
- 4Підміняйте залежності стабами або стежте за ними шпигунами, але ніколи не робіть цього з тестованим кодом. Перевіряйте результати й вихідні виклики, а не приватні поля.
- 5Асинхронний тест має дочекатися своїх перевірок: поверніть проміс або дочекайтеся його через await — це стосується й assert.rejects.
Що перевіряє іспит із цієї теми
Формулювання з програми іспиту (англійською).
- 7.1.K1What makes a unit test effective: isolated, deterministic, one behaviour, meaningful assertions
- 7.1.K2Test doubles: stubs, spies and mocks; testing asynchronous code
- 7.1.S1Find why a given test passes without proving the behaviour, and fix it
Закріпіть тему
Дайте відповідь на запитання за сценаріями з цієї теми. До кожного варіанта є розбір.
Тренування 7.1 · 12 запитань