TDD требует, чтобы вы сначала написали тесты, но это не обязательно должны быть модульные тесты.
Модульные тесты не всегда являются лучшим, а иногда даже выполнимым инструментом для тестирования всего поведения или воспроизведения.все ошибки.Например, условие гонки может быть выставлено только тогда, когда несколько компонентов используются в нескольких потоках.
В вашем случае у вас есть один конкретный метод, который вы считаете проблематичным, поэтому вы можете написать модульный тест для воспроизведения этогоошибка, но это разумное решение?Вы исправите эту проблему, но не похожие проблемы в других методах.Собираетесь ли вы написать тест «не теряет память» для каждого метода?
Вместо этого я бы попытался написать функциональные или интеграционные тесты, которые запускают более полный фрагмент тестируемого приложения и используют любые инструменты, которые есть.доступны в вашей среде разработки, чтобы попытаться поймать утечки памяти.Некоторые языки позволят вам выполнить код, принудительно выполнить сборку мусора или выполнить другую очистку, а затем подтвердить, что использование памяти или количество выделенных объектов вернулись к своим предыдущим значениям.В других средах, которые могут оказаться неосуществимыми, поэтому вам может потребоваться выполнить более широкие измерения, возможно, наблюдая за использованием памяти приложением с течением времени в развертывании тестирования производительности.) и сфокусированы, чтобы им было удобно, когда они имеют смысл, но в конечном итоге вы можете рассматривать все виды тестовых или аналитических данных, которые вы можете собрать о своем коде, как часть вашего процесса TDD.Если вы в состоянии сделать утверждения о том, как должно работать ваше приложение, даже такие широкие утверждения, как «использование памяти должно оставаться стабильным в течение определенного времени», разработать автоматизированные средства тестирования этих утверждений и использовать эти тесты для управления вашим проектом, то я думаю, что выпрактикующий TDD.Напишите тесты, которые имеют смысл.