Метод проверки PHPUnit возвращает тип - PullRequest
2 голосов
/ 08 октября 2019

У меня проблема с тем, чтобы проверить, какой тип содержимого возвращает метод. В случае успеха возвращается string or int, при ошибке возвращается array. Итак, код, подобный этому

public function createAddressBook($bookName)
{
    if (true)
    {
        return 'OK';
    }
    return ['error' => 'FAIL'];
}

Реальный код метода - это запрос API для нового идентификатора книги, который равен int or string, и я не знаю, какое значение вернется. Мой тестовый код выглядит так:

public function setUp()
{
    $this->stub = $this->createMock(\My\Class::class);
}

public function tearDown()
{
    $this->stub = null;
}

public function testCreateAddressBook()
{
   $this->stub->method('createAddressBook')->with('TestBookName');
   $result = $this->stub->createAddressBook('TestBookName');
   //what to do now?
}

У меня вопрос, как проверить метод для возврата типа значения?

1 Ответ

2 голосов
/ 08 октября 2019

Вы можете использовать функции is_array (), is_string (), is_int () или gettype () или использовать оператор! ==, чтобы проверить, различаются ли тип и значение.

is_array ($ var)проверяет, является ли переменная массивом.

is_string ($ var) проверяет, является ли она строкой.

is_int ($ var) проверяет, является ли она целым числом.

gettype ($ var) возвращает тип переменной.

Или вы можете проверить это с помощью функций phpUnit:

$ this-> assertIsInt ($ var);

$ this-> assertIsArray ($ var);

$ this-> assertInternalType ('some_datata_type', $ var);

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