← Усі теми

Питання на співбесіді з тестування (Middle) з відповідями

75 запитань для співбесіди з теми Тестування (Middle) - з правильними відповідями, поясненнями й посиланнями на документацію.

Пройти цей тест
  1. 1.Чим відрізняються findBy… і waitFor?
  2. 2.Що не так із цим waitFor?
  3. 3.Як дочекатися зникнення індикатора завантаження?
  4. 4.Що зазвичай означає попередження «An update to Component inside a test was not wrapped in act(...)»?
  5. 5.Що не так із таким очікуванням?
  6. 6.Як використовувати фейкові таймери разом із user-event v14?
  7. 7.Як протестувати поле пошуку з debounce?
  8. 8.Чим vi.runAllTimers() відрізняється від vi.advanceTimersByTime(1000)?
  9. 9.Як зафіксувати поточну дату в тесті?
  10. 10.Чому vi.mock("./api") можна написати нижче імпортів, і він однаково спрацює?
  11. 11.Чому ця фабрика мока падає?
  12. 12.Як замокати лише один експорт модуля, а решту залишити справжніми?
  13. 13.Чим відрізняються mockClear, mockReset і mockRestore?
  14. 14.Що дає змогу mockImplementationOnce?
  15. 15.Де в Jest лежать ручні моки для node-модуля?
  16. 16.Чому vi.spyOn(module, "fn") часто не впливає на виклики всередині того самого ES-модуля?
  17. 17.Чому MSW часто віддають перевагу над прямим моком fetch/axios?
  18. 18.Як налаштувати MSW для тестів у Node.js?
  19. 19.Як за допомогою MSW зробити так, щоб один тест отримав від ендпоінта помилку 500?
  20. 20.Як перевірити, що компонент надіслав в API, якщо використовується MSW?
  21. 21.Як відрендерити компонент, якому потрібні провайдери (роутер, стор, query client)?
  22. 22.Як шукати всередині однієї частини сторінки, наприклад у рядку таблиці?
  23. 23.Що повертає renderHook?
  24. 24.Як перевірити, що компонент реагує на нові пропси?
  25. 25.Як знайти заголовок певного рівня?
  26. 26.Чому getByRole може не знайти елемент, який є в DOM?
  27. 27.Як протестувати компонент, який читає дані з Redux-стору?
  28. 28.Як протестувати компонент, що використовує TanStack Query?
  29. 29.Як протестувати компонент, що залежить від поточного маршруту (React Router)?
  30. 30.Як перевірити, що чекбокс позначено?
  31. 31.Що перевіряє toHaveAccessibleName?
  32. 32.Як швидко підібрати найкращий запит для елемента?
  33. 33.Що не так із ручним викликом cleanup в afterEach?
  34. 34.Чому getByRole повільніший за getByText і що з цим робити?
  35. 35.Чим погані великі снапшоти компонентів?
  36. 36.Що таке toMatchInlineSnapshot?
  37. 37.Що вимірює покриття гілок (branch coverage), чого не бачить покриття рядків?
  38. 38.Що робить поріг покриття в конфігу?
  39. 39.Які провайдери покриття підтримує Vitest?
  40. 40.Для чого потрібен setup-файл (setupFiles у Vitest, setupFilesAfterEnv у Jest)?
  41. 41.Що робить globals: true у конфігу Vitest?
  42. 42.Навіщо Jest і Vitest за замовчуванням ізолюють тестові файли?
  43. 43.Що таке локатор у Playwright?
  44. 44.Що означає строгість (strictness) локаторів Playwright?
  45. 45.Як звузити локатор елемента списку до того, що містить текст?
  46. 46.Чим expect(await locator.isVisible()).toBe(true) гірше, ніж await expect(locator).toBeVisible()?
  47. 47.Як замокати відповідь API в Playwright?
  48. 48.Як не входити в систему через UI в кожному тесті Playwright?
  49. 49.Як Playwright ізолює тести один від одного?
  50. 50.Чим корисний trace viewer у Playwright?
  51. 51.Що таке фікстури в Playwright?
  52. 52.Як автоматично запускати застосунок перед тестами Playwright?
  53. 53.Що робить expect.poll у Playwright?
  54. 54.Чому не радять page.waitForTimeout(3000)?
  55. 55.Що означає test.describe.configure({ mode: "serial" }) і чому його використовують рідко?
  56. 56.Чому в Cypress не можна написати const text = cy.get("h1").text()?
  57. 57.Що повторюється в ланцюжку Cypress на кшталт cy.get(".list li").should("have.length", 3)?
  58. 58.Як у Cypress дочекатися конкретного запиту?
  59. 59.Що робить cy.session()?
  60. 60.У чому ключова архітектурна відмінність Cypress від Playwright?
  61. 61.Яка практика в Cypress - антипатерн?
  62. 62.Чому інтеграційні тести у фронтенді часто найвигідніші?
  63. 63.Який тип тесту краще підходить для «оформлення замовлення працює зі справжнім бекендом і пісочницею оплати»?
  64. 64.Що перевіряє контрактний тест?
  65. 65.Що робити з нестабільним тестом, який не можна виправити одразу?
  66. 66.Які часті причини нестабільних UI-тестів?
  67. 67.Чому в тесті відповідає «Given–When–Then»?
  68. 68.Чим погана глибока вкладеність describe зі спільними змінними let?
  69. 69.Що НЕ має перевіряти тест компонента?
  70. 70.Як додати автоматичні перевірки доступності в тести компонентів?
  71. 71.Що таке компонентне тестування в Playwright або Cypress?
  72. 72.Що таке Browser Mode у Vitest?
  73. 73.Що дають асиметричні матчери на кшталт expect.objectContaining?
  74. 74.Як перевірити, що «Submit» неактивна, доки форма не валідна?
  75. 75.Як зазвичай налаштовують повтори (retries) у Playwright?