returnArgument в PhpUinit

Всё про тестирование в Yii 2.0
Ответить
Аватара пользователя
Chelobaka
Сообщения: 203
Зарегистрирован: 2018.06.01, 09:54

returnArgument в PhpUinit

Сообщение Chelobaka » 2019.12.03, 11:52

Здравствуйте,

У меня есть сервисы общения с апи.
В метод сервиса я передаю объект и получаю его обратно с установленными значениями. Например Город, ай ди заказа.
Я хочу проверить что метод сетит правильные данные.

Как мне можно это протестировать?
То есть я могу вернуть аргумент переданный в метод но как его изменить до возврата? Или тут я могу просто проверить что метод вызывается и в дальнейшем тестировать его отдельно или как то это можно сделать через анонимную функцию?

Код: Выделить всё


       $service = $this->getMockBuilder(OrderService::class)
            ->setMethods(['setOrder'])
            ->getMock();

        $service->method('setOrder')
            ->will($this->returnArgument(0));
            
 // сам метод вызывается так
 
 $service->setOrder(ActiveRecord);


Передается модель потому что не все апи работают одинаково и каждая может менять свои параметры. В одном случае нужно будет менять город, в другом город и индекс.

Аватара пользователя
maleks
Сообщения: 1796
Зарегистрирован: 2012.12.26, 12:56

Re: returnArgument в PhpUinit

Сообщение maleks » 2019.12.04, 07:27

Вы по моему не правильно понимаете что такое стабы и моки.
Ими перекрываются одни методы чтобы тестировать другие методы.
Т.е. ими имитируется ожидаемое окружение.

Ответить