метод - это чёрный ящик.
Есть что-то на входе и есть что-то на выходе.
Тот факт, что в методе используются нативные функции, не должны волновать при тестировании метода (если, конечно, ты не знаешь особенности нативных функций, которые могут добавить кейсов).
Поэтому используй тест-анализ:
- какими могут быть входные данные? Есть ли "граничные" значения? Не забудь проверку на NULL. Не забудь про нетипизированность РНР.
- какими могут быть выходные данные? Разбей на классы эквивалентности и реализуй те тесты, которые на выходе дают объекты из каждого класса эквивалентности.
- не забудь проверки на исключения (ошибочные входные данные, например, на вход подаётся стринговый путь к файлу, а ты подай какую-нибудь стринговую абракадабру или путь к файлу, к которому нет прав)
- если знаешь особенности нативных функций, можешь попробовать использовать их (метод внутри себя должен уметь обрабатывать эти особенности и на выход кидать исключение или ещё какую-нибудь обработку).
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).