У меня вопрос об модульном тестировании.Как провести тестирование частной функции
У меня есть функция, которая делает следующее вещи:
void myFunction(List<MyClass> myList) {
// 1. Sort the list
// 2. Post Process the list
}
Теперь я хочу, чтобы проверить эту функцию. Но проблема в том, что я не должен проверять эти две вещи одновременно. Поэтому я собираюсь извлечь часть «Опубликовать процесс списка» в качестве отдельной функции.
Но проблема заключается в том, что «Post Process the list» используется только myFunction, и я хочу сделать его закрытым для класса.
Если я сделаю это частным, я не смогу проверить его снаружи.
Каково общее правило такого сценария? Должен ли я изменять частную функцию для публики только для тестирования?
Или, если есть какие-либо другие шаблоны, которые я должен использовать?
Большое спасибо
Один пример mocking framework [Mockito] (http://code.google.com/p/mockito/). Когда вы попадаете в действительно неприятные вещи (например, издевательские статические классы или частные методы), вы также можете использовать [PowerMockito] (http://code.google.com/p/powermock/) – radimpe