За последние 24 часа нас посетили 18564 программиста и 1599 роботов. Сейчас ищут 934 программиста ...

PHPUnit проверить передаваемый аргумент в mock

Тема в разделе "Прочие вопросы по PHP", создана пользователем Jangot, 25 окт 2013.

  1. Jangot

    Jangot Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    2
    Симпатии:
    0
    Может кто знает.
    Как проверить передаваемый аргумент в мок если этот аргумент массив?
    Код тестируемого класса:
    Код (Text):
    1.  
    2. $request->end(
    3.         [
    4.           'success' => false,
    5.           'error' => array(
    6.             'code' => 401,
    7.             'message' => 'Auth error'
    8.           )
    9.         ]
    10.       );
    $request - это мок.

    Код создания мока
    Код (Text):
    1.  
    2.  $requestMock = $this->getMockRequest();
    3.     $requestMock
    4.       ->expects($this->once())
    5.       ->method('end')
    6.       ->with(......);
    Что нужно передать в with что-бы проверить переданный массив или хотя бы один из ключей?
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    is_array() не?
     
  3. Jangot

    Jangot Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    2
    Симпатии:
    0
    Не.
    Я говорю про тестирование. Mock объект передается в тестируемый класс.
    Mock объект может проверить, что тестируемый класс вызовет нужный метод это mock объекта с определенными параметрами. Если передается строка или число, что проблем нет: ->with($this->equalTo('value'));
    А что если туда передается массив, как проверить правильный массив передается или нет.
    Я же не могу написать:
    Код (Text):
    1.  
    2. $requestMock = $this->getMockRequest();
    3.     $requestMock
    4.       ->expects($this->once())
    5.       ->method('end')
    6.       ->with(in_array('errro'));
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    дык откуда мы знаем, кто у тебя правильный массив, а кто нет :D
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Jangot, ты не из Индии? там умеют писать бессмысленный код, покрытый тестами.