Тестирование с помощью PESTPhp

Кемеровские программисты php общаются здесь
Ответить
Гость
 Тестирование с помощью PEST

Сообщение Гость »


Я новичок в тестировании, и мне хотелось знать, сможет ли кто-нибудь подсказать мне, что я делаю неправильно. Я хочу протестировать следующую функцию в своем проекте PHP laravel:

публичная статическая функция getFlatSupplierAddress($supplier_address_id): строка { $supplierAddress = Адрес::findOrFail($supplier_address_id); верните $supplierAddress->street. " " . $supplierAddress->номер. " " . $supplierAddress->квартира. ", ". ($supplierAddress->city ? $supplierAddress->city->name : '') . ", ". ($supplierAddress->провинция ? $supplierAddress->провинция->имя: '') . ", ". ($supplierAddress->country ? $supplierAddress->country->name: ''); } Это мой тестовый код:

it('возвращает форматированный адрес поставщика', function () { $addressMock = Mockery::mock(Address::class); $addressMock->shouldReceive('findOrFail') ->с(1) ->andReturnSelf(); // Возвращаем ложное сообщение $addressMock->shouldReceive('getAttribute') ->с('улица') ->andReturn('Вызов'); $addressMock->shouldReceive('getAttribute') ->с('число') ->andReturn('456'); $addressMock->shouldReceive('getAttribute') ->with('квартира') ->andReturn('Квартира 789'); $addressMock->shouldReceive('город') ->andReturn((object)['name' => 'Retiro']); $addressMock->shouldReceive('провинция') ->andReturn((object)['name' => 'Буэнос-Айрес']); $addressMock->shouldReceive('страна') ->andReturn((object)['name' => 'Аргентина']); $expectedAddress = 'Калле 456, Ретиро, Буэнос-Айрес, Аргентина'; $formattedAddress = AddressService::getFlatSupplierAddress(1); // Утверждать ожидать($formattedAddress)->toBe($expectedAddress); Конечно, у меня есть проблема в том, что я плохо использую Mock, поскольку функция возвращает мне строку адреса, найденную в базе данных, и сравнивает ее с созданным мной Mock.
Ответить

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

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

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

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

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