🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۹ آراد سحابی
مشکل در اجرای تست با لاراول
جامعه پی اچ پی ایجاد شده در ۱۷ مرداد ۱۴۰۲

سلام وقتتون بخیر باشه

من از لاراول استفاده میکنم و هنگامی که میخوام از $this->post استفاده کنم ارور میده همچنین از $this->seeJsonStructure

ممنون میشم راهنمایی کنید

متن ارور

2) Tests\\Unit\\API\\V1\\Users\\UsersTest::test_should_create_a_new_user
Error: Call to undefined method Tests\\Unit\\API\\V1\\Users\\UsersTest::post()

این هم تست من هست

    public function test_should_create_a_new_user()
    {
        $response = $this->post('v1/users', [
            'full_name' => 'Ehsan Masoumipour',
            'email' => 'ehsan@gmail.com',
            'mobile' => '09121212121',
            'password' => 'password'
        ]);
        $this->assertEquals(201, $response->status());
        $this->seeJsonStructure([
            'message' => 'user created!!',
            'status' => true,
            'data' => [
                'full_name' => 'Ehsan Masoumipour',
                'email' => 'ehsan@gmail.com',
                'mobile' => '09121212121',
                'password' => 'password'
            ]
        ]);
    }
آراد سحابی ۱۷ مرداد ۱۴۰۲، ۰۸:۳۶

سلام امیرمحمد عزیز

پیشنهاد میکنم این موارد رو در Feature تست‌ها پیاده کنید.

برای استفاده از ریکوئست‌ها باید کلاس خود لاراول برای تست کیس رو استفاده کنید که نیم اسپیس زیر هست:

use Tests\\TestCase;
اُوژن ملکیان ۱۷ مرداد ۱۴۰۲، ۱۰:۲۷

این هم تست من هست

    public function test_should_create_a_new_user()
    {
        $response = $this->post('v1/users', [
            'full_name' => 'Ehsan Masoumipour',
            'email' => 'ehsan@gmail.com',
            'mobile' => '09121212121',
            'password' => 'password'
        ]);
        $this->assertEquals(201, $response->status());
        $this->seeJsonStructure([
            'message' => 'user created!!',
            'status' => true,
            'data' => [
                'full_name' => 'Ehsan Masoumipour',
                'email' => 'ehsan@gmail.com',
                'mobile' => '09121212121',
                'password' => 'password'
            ]
        ]);
    }
آراد سحابی ۱۷ مرداد ۱۴۰۲، ۱۴:۰۷

e840-Screenshot from 2023-08-08 17-46-35.png

سلام جناب فاطمی کیا وقتتون بخیر این تایع رو نمیشناسه

آراد سحابی ۱۷ مرداد ۱۴۰۲، ۱۴:۱۸

من فکر کردم از لاراول دارید اسفاده میکنید.

به همون حالت قبلی برگردونید و از متد call باید اسفاده کنید.

c3e4-سون-لرن (7).png

اُوژن ملکیان ۱۷ مرداد ۱۴۰۲، ۱۴:۵۲

بله از لاراول استفاده میکنم منتها اسم اون تابع رو در لاراول نمیدونم

آراد سحابی ۱۷ مرداد ۱۴۰۲، ۱۴:۵۸

خب پس همون کاری که گفتم انجام بدید.

متد بررسی ساختار جیسون نامش چیز دیگس:

https://laravel.com/docs/10.x/http-tests#assert-json-structure

اُوژن ملکیان ۱۷ مرداد ۱۴۰۲، ۱۵:۰۴

با تشکر از راهنمایی شما جناب فاطمی کیا

اروری که الان میده این هستش

2a6c-Screenshot from 2023-08-08 19-21-21.png


Route for [v1/users] has no action.

این هم از روت web.php

Route::prefix('v1')->group(function (){
    Route::post('/users');
});

و اینکه من فایل routes رو ورژن بندی نکردم و در این مسیر مربوط به web.php هستش راستش نتونستم که فایل هایی که در ورژن بندی اضافه میشه رو در bootstrap/app.php تعریف کنم

آراد سحابی ۱۷ مرداد ۱۴۰۲، ۱۵:۵۷

سلام امیر جان، لطفاً سورس کدتون رو روی گیتهاب بزارید و لینکش رو بفرستید تا بررسی کنیم.

آراد ملایری ۱۷ مرداد ۱۴۰۲، ۱۶:۵۳