Сведения о вопросе

MAT

05:39, 3rd August, 2020

Теги

unit-testing    

Начало работы с модульным тестированием

Просмотров: 464   Ответов: 7

Модульное тестирование-это, грубо говоря, тестирование битов вашего кода в изоляции с тестовым кодом. Непосредственные преимущества, которые приходят на ум::

  • Выполнение тестов становится автоматизированным и повторяемым
  • Вы можете тестировать на гораздо более детальном уровне, чем point-and-click тестирование через GUI

Ритмис

Мой вопрос заключается в том, каковы текущие "best practices" с точки зрения инструментов, а также когда и где использовать модульное тестирование в рамках вашего ежедневного кодирования?

Давайте попробуем быть немного языковым агностиком и охватить все основания.



  Сведения об ответе

repe

20:44, 4th August, 2020

Хорошо, вот несколько лучших практик от кого-то, кто не проводит юнит-тест так много, как он should...cough.

  1. Убедитесь, что ваши тесты проверяют одну вещь и только одну вещь.
  2. Пишите модульные тесты по ходу работы. Желательно до того, как вы напишете код, который вы тестируете.
  3. Не проводите модульный тест GUI.
  4. Разделите свои заботы .
  5. Сведите к минимуму зависимости ваших тестов.
  6. Макет behviour с глумится .


  Сведения об ответе

$DOLLAR

18:54, 15th August, 2020

Возможно, вы захотите посмотреть на TDD на трех индексных картах и трех индексных картах, чтобы легко запомнить суть тест-ориентированной разработки :

Карточка #1. три закона дяди Боба

  • Не пишите никакого производственного кода, кроме как для прохождения неудачного теста.
  • Напишите только достаточно теста, чтобы продемонстрировать неудачу.
  • Напишите только достаточно производственного кода, чтобы пройти тест.

Карта #2: первые принципы

  • Быстро: умопомрачительно быстро, как в сотнях или тысячах в секунду.
  • Изолированный: тест четко изолирует неисправность.
  • Повторяемость: я могу запустить его несколько раз, и он будет проходить или проваливаться каждый раз одинаково.
  • Самопроверка: тест однозначно проходит-не проходит.
  • Своевременный: производится в lockstep с крошечными изменениями кода.

Карта #3: ядро TDD

  • Красный: тест не проходит
  • Зеленый: тест проходит
  • Рефактор: чистый код и тесты


  Сведения об ответе

PROGA

06:11, 15th August, 2020

Широко используется так называемый фреймворк xUnit. Он был первоначально разработан для Smalltalk как SUnit, эволюционировал в JUnit для Java, а теперь имеет много других реализаций, таких как NUnit для .Net. это почти фактический стандарт - если вы говорите, что используете модульные тесты, большинство других разработчиков будут считать, что вы имеете в виду xUnit или аналогичный.


  Сведения об ответе

FAriza

08:55, 22nd August, 2020

Отличным ресурсом для 'best practices' является блог Google Testing, например, недавний пост о написании тестируемого кода -это фантастический ресурс. В частности, их еженедельные посты серии "тестирование в туалете" отлично подходят для размещения вокруг вашего куба или туалета, поэтому вы всегда можете подумать о тестировании.


  Сведения об ответе

SEEYOU

00:13, 1st August, 2020

Семейство xUnit является основой модульного тестирования. Они интегрированы в подобные Netbeans, Eclipse и многие другие IDEs. Они предлагают простое, структурированное решение для модульного тестирования.

Одна вещь, которую я всегда стараюсь делать при написании теста, - это минимизировать использование внешнего кода. Под этим я подразумеваю: я стараюсь минимизировать код настройки и демонтажа для теста как можно больше и стараюсь избегать использования других модулей/блоков кода как можно больше. Хорошо написанный модульный код не должен требовать слишком много внешнего кода в его настройке и демонтаже.


  Сведения об ответе

ASSembler

23:20, 12th August, 2020

NUnit-это хороший инструмент для любого из языков .NET.

Модульные тесты можно использовать несколькими способами:

  1. Тест На Логику
  2. Увеличьте разделение кодовых единиц. Если вы не можете полностью протестировать функцию или раздел кода, то составляющие его части слишком взаимозависимы.
  3. В процессе разработки некоторые люди пишут тесты, прежде чем написать код для тестирования. Это заставляет вас думать о том, что вы хотите, чтобы код сделал, а затем дает вам определенное руководство о том, когда вы достигли этого.


  Сведения об ответе

fo_I_K

12:25, 3rd August, 2020

Не забывайте о поддержке рефакторинга. ReSharper on .NET обеспечивает автоматический рефакторинг и быстрое исправление отсутствующего кода. Это означает, что если вы пишете вызов к чему-то, что не существует, ReSharper спросит, хотите ли вы создать недостающую часть.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться