Тесты - это спецификация поведения программы. Вы меняете их, когда вам нужно изменить спецификации, потому что они являются спецификациями. Некоторые, которые приходят мне в голову ...
- Если требования к коду изменились и тест не соответствует новому поведению, их следует обновить.
- Когда некоторые требования устаревают, тесты, которые определяют это поведение, должны быть удалены.
Основным качеством, которым должен обладать тестовый код, является удобочитаемость. Поэтому вы должны регулярно менять тесты из-за ...
- Если тест сложен для чтения и не раскрывает всех намерений программиста, его следует реорганизовать для улучшения его читаемости.
Кроме того, существуют случаи, когда тесты не выполняются, например, хрупкие тесты для параллельного кода, которые в основном проходят, но время от времени терпят неудачу, даже если код правильный. В таких случаях тесты должны быть исправлены, чтобы быть более повторяемыми (может потребоваться изменение кода, чтобы его было проще тестировать - лучше всего избегать / ограничивать параллелизм с помощью подходящих шаблонов проектирования).