Unit-тестирование 3

Опубликовано 11.02.2020 10:54:08 в категории Просто о NET

Покрытие unit-тестами. Что это? Как это понимать? Для чего это нужно?

Покрытие unit-тестами

Зачастую бытует мнение, что 100% покрытие - это норма. То есть покрытие всех строчек кода, как, например, было показано в предыдущей части. Обращаясь к концепции "хорошо" и "правильно" можно сказать, что это - "правильно". Но реальном мире всё намного сложнее. "Бизнес" (заказчик) требует жертв. Ибо пока вы будете писать тесты, то другой "бизнес" выкинет на рынок свой не протестированный продукт и захватит нишу, пока вы будете писать ваши супер тесты. Именно поэтому, 100% покрытие - это заблуждение.

Покрывать тестами все строчки всех классов - это, по меньшей мере, нецелесообразно.

Причин, на самом деле несколько: 

  • Затратно по времени, если покрывать все строки кода.
  • Всё уже покрыта тестами в сторонних сборках другими разработчиками
  • Изменения в классах (unit'ы), которые не участвуют в бизнес процессах

Что рекомендуется покрывать тестами:

  • Процессы бизнес-логики
  • Классы меняющие процессы (например или обычно, реализуемые паттерны)

Что рекомендуется покрывать тестами:

  • Процессы бизнес-логики
  • Классы меняющие процессы (например или обычно, реализуемые паттерны)

В этом видео: Создать механизмы для облегчения и упрощения создания тестов. Написать тесты на UnitOfWork (в реализации Nimble Framework).

Видео

Мои видео

Boosty.toYouTube | Yandex.Дзен | RuTube | VK Video

Больше видео на boosty Calabonga, а если хотите тоже получать донаты, тогда заходите и регистрируйте свою страницу на boosty. Я использую хостинг reg.ru, Подключайся с промокодом 9A17-953A-8591-CF98 чтобы получить скидку 5%

Комментарии к статье отключены

Что-то пошло не по сценарию и завершилось ошибкой. Перезагрузить страницу (F5) 🗙

Переподключаем сервер...

Переподключение сломалось... Пробуем еще раз сек.

Не получилось переподключится.
Пожалуйста, обновите страницу F5

Сессия была поставлена сервером на паузу.

Восстановить сессию не получилось.
Пожалуйста, обновите страницу F5.