Пересмешивание функций PHP в модульных тестах
Я провожу модульное тестирование некоторого PHP-кода с помощью SimpleTest, и у меня возникли проблемы. В моих тестах класса базы данных я хочу установить ожидание для PHPmysql
функции. В моих тестах класса оболочки дляmail
функция, которую я хочу издеваться над PHPmail
функция. Это всего лишь несколько примеров.
Дело в том, что я не хочу (всегда) проверять, отправляет ли мой класс электронной почты электронную почту, я хочу проверить, как он вызываетmail
функция. Я хочу иметь возможность контролировать, что возвращают эти функции. Я хочу иметь возможность тестировать мой класс базы данных, не требуя базы данных, приспособлений и всего этого.
У меня есть некоторый опыт тестирования кода на Ruby, а Test :: Unit и RSpec позволяют очень легко тестировать код изолированно. Я новичок в тестировании PHP, и мне кажется, что я тестирую намного больше, чем мне нужно, чтобы пройти мои тесты.
Есть ли способ в SimpleTest или PhpUnit или в какой-либо другой среде тестирования, который делает это возможным или проще?