Intereting Posts
PHP – Передача переменных с одной страницы на другую Использование ctype_alnum () с пробелами Выбор данных таблицы MySql в массив Как установить разрешения по умолчанию для новых файлов, созданных с помощью php PHP-сессии Войти с помнить меня Как проверить 17 цифр в массиве номеров VIN из формы в php? PHP – Проблемы с удалением «\ r \ n \ r \ n» из этой строки: «Я хотел бы: \ r \ n \ r \ n1.) Сбросить этот беспорядок \ r \ n \ r \ n \ 2.) Теперь Пожалуйста" PHP: показать число до двух знаков после запятой Реализация входа в систему вместе с suPHP file_get_contents («php: // input») или $ HTTP_RAW_POST_DATA, какой из них лучше получить тело запроса JSON? PHP – эховые свойства класса, которые защищены WooCommerce отображает имя продукта заказа в моей учетной записи symfony: не можем ли мы иметь скрытое поле объекта? Почему оператор pre / post increment ведет себя неправильно? почему данные приложенной строки не отображались после отправки?

Проверить рекурсивный метод

Я хочу проверить метод

public function get($key) { if (!($time = $this->driver->get($key))) { if ($key == self::LAST_UPDATE_KEY) { $time = new \DateTime(); $this->driver->set($key, $time); } else { $time = $this->get(self::LAST_UPDATE_KEY); // need test this condition } } return $time; } 

Первые данные запроса от драйвера должны возвращать значение null, а второе значение мне необходимо.

Я пишу тест

 public function testGetEmpty() { $time = new \DateTime(); $driver_mock = $this ->getMockBuilder('MyDriver') ->getMock(); $driver_mock ->expects($this->once()) ->method('get') ->with('foo') ->will($this->returnValue(null)); $driver_mock ->expects($this->once()) ->method('get') ->with(Keeper::LAST_UPDATE_KEY) ->will($this->returnValue($time)); $obj = new Keeper($driver_mock); $this->assertEquals($time, $obj->get('foo')); } 

при выполнении возвратить ошибку

 Expectation failed for method name is equal to <string:get> when invoked 1 time(s) Parameter 0 for invocation MyDriver::get('foo') does not match expected value. Failed asserting that two strings are equal. --- Expected +++ Actual @@ @@ -'last-update' +'foo' 

Долгое время я не писал модульные тесты, и многие забывали. Помогите мне понять.