Я пытаюсь запустить модульный тест, используя функции PHPUnit
и Mock
. Я ожидаю массив в результате. Но всегда получаю объект, и это не связано с функцией, которую я вызвал. Как я могу сделать эту работу?
Даю код ниже
public function testGet()
{
$mock = $this->createMock(Category::class);
$map = [
[1, 2],
[3, 4],
];
$mock->method('get')
->willReturn($this->returnValueMap($map));
$testVal = $mock->get(1);
echo '<pre>';
print_r($testVal);
die;
}
Результат, который я получаю из печати,
PHPUnit\Framework\MockObject\Stub\ReturnValueMap Object
(
[valueMap:PHPUnit\Framework\MockObject\Stub\ReturnValueMap:private] => Array
(
[0] => Array
(
[0] => 1
[1] => 2
)</p>
<pre><code> [1] => Array
(
[0] => 3
[1] => 4
)
)
)
</code>
Я ожидаю получить 2, если передам 1 функции, и ожидаю получить 4, если передам 3 функции.
Функция, которую я хочу проверить:
public function get(int $id)
{
$categoryData = new CategoryData();
$fields = ['name', 'gid'];
$getCat = $categoryData->get($id, $fields);
if ($getCat) {
return $getCat;
}
return [];
}
Я что-то здесь упускаю? Пожалуйста, помогите