Макетный запрос Laravel PHPUnitPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Макетный запрос Laravel PHPUnit

Сообщение Anonymous »

Я создаю PHPUnit на своем контроллере и не могу правильно высмеять запрос.

Вот контроллер:

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

use Illuminate\Http\Request;

public function insert(Request $request)
{
// ... some codes here
if ($request->has('username')) {
$userEmail = $request->get('username');
} else if ($request->has('email')) {
$userEmail = $request->get('email');
}
// ... some codes here
}
Затем юнит-тест

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

public function testIndex()
{
// ... some codes here

$requestParams = [
'username' => 'test',
'email'    => 'test@test.com'
];

$request = $this->getMockBuilder('Illuminate\Http\Request')
->disableOriginalConstructor()
->setMethods(['getMethod', 'retrieveItem', 'getRealMethod', 'all', 'getInputSource', 'get', 'has'])
->getMock();

$request->expects($this->any())
->method('get')
->willReturn($requestParams);

$request->expects($this->any())
->method('has')
->willReturn($requestParams);

$request->expects($this->any())
->method('all')
->willReturn($requestParams);

// ... some codes here
}
Проблема в том, что когда я var_dump($request->has('username'); он всегда возвращает $requestParams значение, в котором находится весь массив. Я ожидаю, что оно должно вернуть true, поскольку ключ имени пользователя существует в массиве.

Затем, когда я удалю ключ имени пользователя на $requestParams, он должен возвращать false, поскольку он не содержит ключ имени пользователя в массиве

Подробнее здесь: https://stackoverflow.com/questions/463 ... ck-request
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»