Мне интересно, являются ли частные методы модульного тестирования хорошей практикой?
Обычно следует тестировать только общедоступный интерфейс.
Однако я обнаружил, что во время сложных вычислений, которые вызывают множество различных частных методов, легче сначала провести модульное тестирование частных методов, а затем выполнить простой тест для метода открытого интерфейса.
В качестве примера предположим, что у вас есть аудиоплеер и у вас есть функции:
void play(){ ... }
void pause(){ ... }
void seek(time t)
{
//All Private methods
checkIfValidTimeRange(...);
moveToFilePos(...);
fillBuffers(...);
}
Обычно я бы написал модульные тесты для: checkIfValidTimeRange (...)
, moveToFilePos (... )
, fillBuffers (...)
.
Но я не уверен, что это хорошая практика.