Питання на співбесіді з тестування (Junior) з відповідями
78 запитань для співбесіди з теми Тестування (Junior) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Яка головна мета автоматичних тестів?
- 2.Що перевіряє unit-тест?
- 3.Що перевіряє інтеграційний тест?
- 4.Що таке end-to-end (E2E) тест?
- 5.Що рекомендує класична піраміда тестів?
- 6.На що робить основний наголос «testing trophy» Кента Доддса?
- 7.Який шар testing trophy ловить друкарські помилки й неправильні типи ще до запуску тестів?
- 8.Що таке регресія?
- 9.Що описує патерн Arrange–Act–Assert (AAA)?
- 10.Що має перевіряти тест - поведінку чи деталі реалізації?
- 11.Що вимірює покриття коду тестами (coverage)?
- 12.Чи є 100% покриття гарною метою саме по собі?
- 13.Що таке Jest і Vitest?
- 14.Які файли Jest за замовчуванням вважає тестами?
- 15.Що роблять
describeіit(test)? - 16.Чим відрізняються
toBeіtoEqual? - 17.Чим
toStrictEqualвідрізняється відtoEqual? - 18.Чому ця перевірка падає і як її виправити?
- 19.Як перевірити, що функція кидає помилку?
- 20.Що робить
.notуexpect(value).not.toBeNull()? - 21.Який матчер перевіряє, що масив містить елемент?
- 22.Для чого потрібен
beforeEach? - 23.Що роблять
it.onlyіit.skip? - 24.Як протестувати асинхронну функцію, що повертає проміс?
- 25.Як перевірити, що проміс відхиляється?
- 26.Що робить режим спостереження (
vitest/jest --watch)? - 27.Чому корисно, щоб кожен тест був незалежним?
- 28.Яка назва тесту хороша?
- 29.У якому середовищі зазвичай запускаються тести компонентів у Jest/Vitest?
- 30.Що таке мок у тестуванні?
- 31.Що створює
jest.fn()/vi.fn()? - 32.Як перевірити, що колбек викликали з певними аргументами?
- 33.Як змусити мок повернути значення?
- 34.Що робить
jest.spyOn(obj, "method")/vi.spyOn? - 35.Що таке stub (заглушка)?
- 36.Навіщо мокати мережеві запити в unit- та інтеграційних тестах?
- 37.Що таке MSW (Mock Service Worker)?
- 38.Що робить
mockClear()(абоvi.clearAllMocks())? - 39.Чим небезпечно мокати занадто багато?
- 40.Як зробити детермінованим тест, що використовує
Math.random()? - 41.Який головний принцип Testing Library?
- 42.Що робить
renderз React Testing Library? - 43.Навіщо використовувати
screenзамість запитів, які повертаєrender? - 44.Який запит Testing Library рекомендує насамперед?
- 45.Як знайти кнопку «Save»?
- 46.Чим відрізняються
getBy,queryByіfindBy? - 47.Як перевірити, що елемента НЕМАЄ на сторінці?
- 48.Яким запитом шукати елемент, що з'являється після завантаження даних?
- 49.Звідки беруться матчери
toBeInTheDocument,toBeVisibleіtoHaveValue? - 50.Чим краще імітувати дії користувача:
fireEventчиuser-event? - 51.Як ввести текст у поле за допомогою user-event v14?
- 52.Як знайти поле введення за його підписом?
- 53.Коли доречний
getByTestId? - 54.Що не так із цим тестом?
- 55.Як перевірити результат натискання кнопки лічильника?
- 56.Що робить
screen.debug()? - 57.Що перевіряє
toHaveBeenCalledTimesдля колбек-пропа після кліку? - 58.Що робить snapshot-тест?
- 59.Чому запити Testing Library за роллю заразом покращують доступність?
- 60.Для чого використовують Playwright і Cypress?
- 61.У яких браузерах Playwright може запускати тести?
- 62.Як у Playwright рекомендують шукати кнопку?
- 63.Чи потрібен у Playwright
sleep/waitForTimeoutперед кліком? - 64.Що робить
await expect(page.getByText("Saved")).toBeVisible()у Playwright? - 65.Що означає headless-режим?
- 66.Як у Cypress знайти елемент за спеціальним тестовим атрибутом?
- 67.Чому E2E-тестів має бути небагато й лише на ключові сценарії?
- 68.Що таке flaky-тест?
- 69.Що робить
playwright codegen? - 70.Що таке TDD (розробка через тестування)?
- 71.Де тести зазвичай запускаються автоматично?
- 72.Що з цього найкращий кандидат для unit-тесту?
- 73.Що робить
test.each/it.each? - 74.Що в ідеалі має перевіряти один тест?
- 75.Чому цей тест не впіймає баг?
- 76.Що гарантує виклик
expect.assertions(n)? - 77.Де правильніше перевірити, що форма показує «Обов'язкове поле» під час порожнього надсилання?
- 78.Чому кастомний хук тестують через компонент (або
renderHook), а не викликають напряму?