Могут ли тестовые методы модульных тестов НЕ объявлены в файле .h?
Если модульные тесты не могут, должен ли я объявлять все методы в файле .h только для модульных тестов? Это непродуктивно или того стоит?
Могут ли тестовые методы модульных тестов НЕ объявлены в файле .h?
Если модульные тесты не могут, должен ли я объявлять все методы в файле .h только для модульных тестов? Это непродуктивно или того стоит?
Что я делаю, когда хочу протестировать то, что в противном случае было бы приватными методами, так это определяю категорию с определениями методов для тестирования. Поместив категорию в отдельный файл, вы сохраните внешний вид приватных методов. Вы все еще можете иметь реализацию в основном файле .m, не нужно ничего делать там.
Есть и другие способы справиться с этим, например поместить их в основной файл .h или определить категорию в самих тестовых реализациях, но все они кажутся мне как минимум немного грязными. Мне очень нравится, что мои файлы интерфейса отражают общедоступный интерфейс и сохраняют конфиденциальность личных данных.