Пакет HTTP Fixtures для Laravel створює фейкові JSON-відповіді для зовнішніх API під час тестування за допомогою методу Http::fake(). Це значно спрощує процес створення мок-відповідей, інтегруючи FakerPHP для генерації реалістичних тестових даних.
Генерувати фейкові HTTP-відповіді може бути складно, але цей пакет робить це простим: ви можете створити фіктивну відповідь на основі реального HTTP-запиту у вашому тесті:
use Gromatics\Httpfixtures\Services\HttpResponseRecorder;
use Illuminate\Support\Facades\Http;
it('creates an HTTP Fixture from a real JSON request', function () {
Http::record();
Http::get('https://api.stackexchange.com/2.2/search?order=desc&sort=activity&intitle=perl&site=stackoverflow&limit=1');
HttpResponseRecorder::recordedToHttpFixture();
});
Вищенаведений код створить фікцію у директорії tests/Fixtures, а дані налаштуються за допомогою Faker у класі фікції, який можна повторно використовувати. Також доступна можливість створювати фікції з JSON-файлу або через команду Artisan:
public function definition(): array
{
return [
'items' => [
0 => [
'tags' => [
0 => $this->faker->word(),
1 => $this->faker->word(),
2 => $this->faker->word(),
],
'owner' => [
'reputation' => $this->faker->numberBetween(10, 99),
'user_id' => $this->faker->numberBetween(1000000, 9999999),
'user_type' => $this->faker->word(),
'profile_image' => $this->faker->word(),
'display_name' => $this->faker->name(),
'link' => $this->faker->url(),
],
],
// ...
],
];
}
Після того як ви створите фікції, їх можна використовувати у тестах, наприклад:
Http::fake(["https://api.stripe.com/v1/*" => Http::response(
new StripeFixture()->toJson(), 200),
]);
// Перезапишіть значення за допомогою нотації з крапками
Http::fake(["https://api.stripe.com/v1/*" => Http::response(
new StripeFixture(['items.0.tags' => ["my-tag"]])->toJson(), 200),
]);
Детальніше про цей пакет, інструкції щодо встановлення та джерела коду можна знайти на GitHub.
Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення
Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!