У меня есть старый код, который не использовал TDD теперь я хочу, чтобы написать тест для функции, которая выглядит как этотmock вновь созданный экземпляр?
function somefunction($someargs){
// do a few checks on $someargs
$database = new DB_PG();
$result = $database->select($query);
// do some changes on result
return $result;
}
поскольку им не очень expirienced с PHPUnit и тестирования в целом мой вопрос: хау Могу ли я издеваться над DB_PG? я попытался getMock() в моем тесте, но так как функция использует «новый», чтобы получить экземпляр мой фиктивный объект игнорируется, что имеет смысл
так я вижу только два варианта
- некоторые особенности из PHPUnit я не знаю - что является причиной я спросить здесь ^^
- я должен изменить старый код - который я знаю, было бы лучше
так, кто знает ответ на вариант 1?
ТНХ все
Как вы настраиваете этот тест? Вы читали эту статью по двойным экзаменам? Является ли это автономной функцией или это метод, который является частью более широкого класса? Как выглядят ваши тесты (используя getMock)? –
* Что вы подразумеваете под настройкой? * Да, я знаю эту статью, но я не уверен, что вы здесь делаете? * его автономной функции я хочу проверить и тест это попытаться запустить выглядит следующим образом функция test_someFunctionFailed() {$ pgmock = $ this-> getMock ('DB_PG', массив ('выбрать')); $ pgmock-> ожидает ($ this-> any()) -> метод ('select') -> will ($ this-> returnValue (null)) $ rval = somefunction(); $ this-> assertNull ($ rval); } В настоящее время это приводит к Неустранимая ошибка: вызов неопределенного метода DB_PG :: select() in ... –