Хоча існують способи запобігти виконанню одиничних тестів, яка цінність перевірки при невдалому одиничному тесті?
Я буду використовувати простий приклад: Чутливість до справ. Поточний код залежить від регістру. Дійсний вхід до методу - "Cat", і він би повернув перерахунок Animal.Cat. Однак бажана функціональність методу не повинна враховувати регістри. Тож якби описаний метод був переданий "кіт", він, можливо, може повернути щось на зразок Animal.Null замість Animal.Cat, і тестовий пристрій не вдасться. Хоча проста зміна коду зробила б цю роботу, складнішою проблемою може знадобитися тиждень, але ідентифікація помилки з одиничним тестом може бути менш складним завданням.
Програма, яка зараз аналізується, має 4 роки коду, який "працює". Однак останні дискусії щодо одиничних тестів виявили недоліки в коді. Деякі просто потребують явної документації щодо впровадження (наприклад, залежно від регістру чи ні) або коду, який не виконує помилку, залежно від того, як вона зараз викликається. Але одиничні тести можуть бути створені, виконуючи конкретні сценарії, які спричинять побачення помилки та є коректними вхідними даними.
Яке значення перевірки в одиничних тестах, які здійснюють помилку, поки хтось не може обійтись, щоб виправити код?
Чи слід позначити цей тест одиниці ігноруванням, пріоритетом, категорією тощо, щоб визначити, чи вдала збірка була на основі виконаних тестів? Врешті-решт слід створити одиничний тест для виконання коду, як тільки хтось його виправить.
З одного боку, це показує, що виявлені помилки не були виправлені. З іншого боку, може бути сотні невдалих тестів одиниць, що відображаються в журналах, і прополка через ті, які повинні вийти з ладу внаслідок відмов через реєстрацію коду, важко буде знайти.