У меня есть какой-то очень недружелюбный к тесту код (если не сказать больше), который мне нужно протестировать. Рефакторинг, к сожалению, не вариант. Я должен проверить код как есть, без возможности его изменения.
Чтобы сделать это, я думал о перехвате вызовов функций и динамическом изменении того, что они делают, чтобы я мог выполнять свои тесты, так как мне нужны некоторые функции и методы для возврата известных значений, и мне нужны другие, которые делают запросы, подключаются к базы данных и т.д., чтобы прекратить делать это и вернуть то, что мне нужно, чтобы они вернулись. Есть ли способ сделать это без runkit_method_redefine()
, который предпочтительно не является "ЭКСПЕРИМЕНТАЛЬНЫМ" и все еще поддерживается? Может быть, альтернатива рункиту? Может быть, лучше?
Редактировать: будут использовать тестовые дубликаты PHPUnit и возможности PHP 5.3.2 для обеспечения доступности приватных методов, если мне понадобятся эти функции.