amanqaku

Funda ukwenza iimvavanyo eLaravel ngemizekelo elula, usebenzisa iPHPUnit kunye ne-PEST

Xa kuziwa kwiimvavanyo ezizenzekelayo okanye iimvavanyo zeyunithi, kulo naluphi na ulwimi lwenkqubo, kukho iimbono ezimbini eziphikisanayo:

  • Inkcitho xesha
  • Awukwazi ukwenza ngaphandle kwayo

Ke, ngeli nqaku siza kuzama ukukholisa eyokuqala, ngakumbi ngokubonisa ukuba kulula kangakanani ukuqalisa ngovavanyo oluzenzekelayo eLaravel.

Okokuqala makhe sithethe ngo "kutheni", kwaye emva koko makhe sibone imizekelo yendlela.

Kutheni sifuna uvavanyo oluzenzekelayo

Iimvavanyo ezizenzekelayo ziqhuba iinxalenye zekhowudi kwaye zichaze naziphi na iimpazamo. Yeyona ndlela ilula yokuzichaza. Khawufane ucinge ngokukhupha into entsha kwi-app, kwaye emva koko umncedisi werobhothi uya kuhamba aze avavanye ngesandla into entsha, ngelixa evavanya ukuba ikhowudi entsha ayiphulanga naziphi na iimpawu ezindala.

Le yeyona nto iluncedo: ukuvavanya kwakhona zonke iimpawu ngokuzenzekelayo. Oku kunokubonakala ngathi ngumsebenzi owongezelelekileyo, kodwa ukuba awuyixeleli “irobhothi” ukuba iyenze, ngenye indlela kufuneka siyenze ngesandla, akunjalo? 

Okanye izinto ezintsha zinokukhutshwa ngaphandle kokuvavanya ukuba ziyasebenza na, ngethemba lokuba abasebenzisi baya kuxela iimpazamo.

Uvavanyo oluzenzekelayo lungasinika iingenelo ezininzi:

  • Gcina ixesha lokuvavanya ngesandla;
  • Zikuvumela ukuba wonge ixesha kokubini kumsebenzi omtsha ophunyeziweyo nakwimisebenzi edityanisiweyo ngokunqanda ukuhlehla;
  • Phindaphinda-phinda le nzuzo ngazo zonke iimpawu ezintsha kunye nazo zonke iimpawu esele ziphunyeziwe;
  • Amanqaku amathathu angaphambili asebenza kwinguqulelo entsha nganye;
  • ...

Zama ukucinga ngesicelo sakho kunyaka okanye emibini, kunye nabaphuhlisi abatsha kwiqela abangayazi ikhowudi ebhalwe kwiminyaka edlulileyo, okanye nokuba ungayivavanya njani. 

Iimvavanyo zethu zokuqala ezizenzekelayo

Ukwenza okokuqala uvavanyo oluzenzekelayo eLaravel, awudingi ukubhala nayiphi na ikhowudi. Ewe, ufunda oko kulungile. Yonke into sele icwangcisiwe kwaye ilungiselelwe kwi-pre-installationdefiNite yeLaravel, kuquka nowona mzekelo usisiseko wokuqala.

Ungazama ukufaka iprojekthi yeLaravel kwaye uqhube iimvavanyo zokuqala kwangoko:

laravel new project
cd project
php artisan test

Oku kuya kuba sisiphumo kwi-console yakho:

Ukuba sijonga kwangaphambilidefiNgobusuku beLaravel /tests, sineefayile ezimbini:

tests/Feature/ExampleTest.php :

class ExampleTest extends TestCase
{
    public function test_the_application_returns_a_successful_response()
    {
        $response = $this->get('/');
 
        $response->assertStatus(200);
    }
}

Awudingi ukwazi nasiphi na isivakalisi ukuqonda ukuba kuqhubeka ntoni apha: layisha iphepha lasekhaya kwaye ujonge ukuba ikhowudi yesimo HTTP è "200 OK".

Ikwabizwa ngokuba yindlela yegama test_the_application_returns_a_successful_response() iba ngumbhalo ofundekayo xa ujonga iziphumo zovavanyo, ngokulula ngokutshintsha isimboli ekrwelelwe umgca ngaphantsi ngesithuba.

tests/Unit/ExampleTest.php :

class ExampleTest extends TestCase
{
    public function test_that_true_is_true()
    {
        $this->assertTrue(true);
    }
}

Kubonakala ngathi akukho nto, ukujonga ukuba oku kuyinyani? 

Siza kuthetha ngokuthe ngqo malunga novavanyo lweyunithi kamva kancinane. Okwangoku, kufuneka uqonde oko kwenzeka ngokubanzi kuvavanyo ngalunye.

  • Ifayile yovavanyo nganye kwifolda /tests yiklasi ye-PHP eyandisa i-TestCase ye PHPUnithi
  • Kwiklasi nganye, unokwenza iindlela ezininzi, ngokuqhelekileyo indlela enye yokuvavanya imeko
  • Kwindlela nganye kukho izenzo ezintathu: ukulungisa imeko, emva koko uthathe inyathelo kwaye emva koko uqinisekise (ukuqinisekisa) ukuba isiphumo silindelekile.

Ngokwesakhiwo, yiyo yonke into ekufuneka uyazi, yonke enye into ixhomekeke kwizinto kanye ofuna ukuzivavanya.

Ukuvelisa iklasi yovavanyo olungenanto, sebenzisa lo myalelo:

php artisan make:test HomepageTest

Ifayile yenziwe tests/Feature/HomepageTest.php:

class HomepageTest extends TestCase
{
    // Replace this method with your own ones
    public function test_example()
    {
        $response = $this->get('/');
 
        $response->assertStatus(200);
    }
}

Ngoku makhe sibone ukuba kwenzeka ntoni ukuba ikhowudi yovavanyo iyasilela eLaravel

Ngoku makhe sibone ukuba kuya kwenzeka ntoni ukuba iingqinisiso zovavanyo azibuyisi iziphumo ezilindelekileyo.

Masitshintshe imizekelo yovavanyo ibe koku:

class ExampleTest extends TestCase
{
    public function test_the_application_returns_a_successful_response()
    {
        $response = $this->get('/non-existing-url');
 
        $response->assertStatus(200);
    }
}
 
 
class ExampleTest extends TestCase
{
    public function test_that_true_is_false()
    {
        $this->assertTrue(false);
    }
}

Kwaye ngoku, ukuba siqhuba umyalelo php artisan test kwakhona:

 FAIL  Tests\Unit\ExampleTest
⨯ that true is true
 
 FAIL  Tests\Feature\ExampleTest
⨯ the application returns a successful response
 
---
 
• Tests\Unit\ExampleTest > that true is true
Failed asserting that false is true.
 
at tests/Unit/ExampleTest.php:16
   12▕      * @return void
   13▕      */
   14▕     public function test_that_true_is_true()
   15▕     {
➜  16▕         $this->assertTrue(false);
   17▕     }
   18▕ }
   19▕
 
• Tests\Feature\ExampleTest > the application returns a successful response
Expected response status code [200] but received 404.
Failed asserting that 200 is identical to 404.
 
at tests/Feature/ExampleTest.php:19
   15▕     public function test_the_application_returns_a_successful_response()
   16▕     {
   17▕         $response = $this->get('/non-existing-url');
   18▕
➜  19▕         $response->assertStatus(200);
   20▕     }
   21▕ }
   22▕
 
 
Tests:  2 failed
Time:   0.11s

Kukho iimvavanyo ezimbini ezingaphumeleliyo, eziphawulwe njenge-FAIL, ezineengcaciso ezingezantsi kunye neentolo ezibhekiselele kumgca ochanekileyo wovavanyo olungaphumelelanga. Iimpazamo zibonakaliswe ngolu hlobo.

Umzekelo: Ukuvavanya ikhowudi yefomu yokubhalisa eLaravel

Masithi sinefomu kwaye kufuneka sivavanye iimeko ezahlukeneyo: sijonga ukuba ayiphumelelanga ngedatha engasebenziyo, sijonga ukuba iyaphumelela ngegalelo elichanekileyo, njl.

Ikhithi yokuqalisa esemthethweni nguLaravel Breeze ibandakanya i ukuvavanya ukusebenza ngaphakathi kwayo. Makhe sijonge eminye imizekelo esuka apho:

tests/Feature/RegistrationTest.php

use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
 
class RegistrationTest extends TestCase
{
    use RefreshDatabase;
 
    public function test_registration_screen_can_be_rendered()
    {
        $response = $this->get('/register');
 
        $response->assertStatus(200);
    }
 
    public function test_new_users_can_register()
    {
        $response = $this->post('/register', [
            'name' => 'Test User',
            'email' => 'test@example.com',
            'password' => 'password',
            'password_confirmation' => 'password',
        ]);
 
        $this->assertAuthenticated();
        $response->assertRedirect(RouteServiceProvider::HOME);
    }
}

Apha sineemvavanyo ezimbini kwiklasi enye, ekubeni zombini zihambelana nefom yokubhalisa: enye ihlola ukuba ifom ilayishwe ngokuchanekileyo kwaye enye ihlola ukuba ukuhanjiswa kusebenza kakuhle.

Masiqhelane nezinye iindlela ezimbini zokuqinisekisa isiphumo, iinkcazo ezimbini ezingakumbi: $this->assertAuthenticated()$response->assertRedirect(). Ungajonga zonke iziqinisekiso ezikhoyo kuxwebhu olusemthethweni lwe PHPUnithi e Impendulo yeLaravel . Qaphela ukuba ezinye iingqikelelo jikelele zenzeka ngalo mbandela $this, ngelixa abanye bejonga ethile $responseukusuka kwifowuni yendlela.

Enye into ebalulekileyo kukuba use RefreshDatabase;ingxelo, nge-stroke, efakwe ngaphezulu kweklasi. Kuyimfuneko xa izenzo zovavanyo zinokuchaphazela isiseko sedatha, njengoko kulo mzekelo, ukugawulwa kwemithi yongeza ungeno olutsha kwi usersitafile yedatha. Kule nto, kufuneka wenze isiseko sedatha esahlukileyo sovavanyo oluza kuhlaziywa ngalo php artisan migrate:freshngalo lonke ixesha iimvavanyo ziqhutywa.

Uneendlela ezimbini ongakhetha kuzo: ukwenza ngokwasemzimbeni isiseko sedatha esahlukileyo okanye sebenzisa i-database ye-SQLite ekwinkumbulo. Zombini ziqwalaselwe kwifayile phpunit.xmlkubonelelwe ngokungagqibekangadefinita kunye Laravel. Ngokukodwa, ufuna le nxalenye:

<php>
    <env name="APP_ENV" value="testing"/>
    <env name="BCRYPT_ROUNDS" value="4"/>
    <env name="CACHE_DRIVER" value="array"/>
    <!-- <env name="DB_CONNECTION" value="sqlite"/> -->
    <!-- <env name="DB_DATABASE" value=":memory:"/> -->
    <env name="MAIL_MAILER" value="array"/>
    <env name="QUEUE_CONNECTION" value="sync"/>
    <env name="SESSION_DRIVER" value="array"/>
    <env name="TELESCOPE_ENABLED" value="false"/>
</php>

Bona i DB_CONNECTIONDB_DATABASEzeziphi ekuthethwa ngazo? Ukuba uneSQLite kwiseva yakho, esona senzo silula kukukhupha nje loo migca kwaye iimvavanyo zakho ziya kuqhuba ngokuchasene nesiseko sedatha yememori.

Kolu vavanyo sithi umsebenzisi uqinisekiswe ngempumelelo kwaye uqondiswe kwiphepha lasekhaya elichanekileyo, kodwa sinokuvavanya idatha yokwenyani kwisiseko sedatha.

Ukongeza kule khowudi:

$this->assertAuthenticated();
$response->assertRedirect(RouteServiceProvider::HOME);

Sinokusebenzisa kwakhona iinkcazo zovavanyo lwedatabase kwaye wenze into efana nale:

$this->assertDatabaseCount('users', 1);
 
// Or...
$this->assertDatabaseHas('users', [
    'email' => 'test@example.com',
]);

Umzekelo wekhasi lokuNgena

Ngoku makhe sibone omnye umzekelo wephepha lokuNgena ngeLaravel Breeze

tests/Feature/AuthenticationTest.php:

class AuthenticationTest extends TestCase
{
    use RefreshDatabase;
 
    public function test_login_screen_can_be_rendered()
    {
        $response = $this->get('/login');
 
        $response->assertStatus(200);
    }
 
    public function test_users_can_authenticate_using_the_login_screen()
    {
        $user = User::factory()->create();
 
        $response = $this->post('/login', [
            'email' => $user->email,
            'password' => 'password',
        ]);
 
        $this->assertAuthenticated();
        $response->assertRedirect(RouteServiceProvider::HOME);
    }
 
    public function test_users_can_not_authenticate_with_invalid_password()
    {
        $user = User::factory()->create();
 
        $this->post('/login', [
            'email' => $user->email,
            'password' => 'wrong-password',
        ]);
 
        $this->assertGuest();
    }
}

Imalunga nefom yokungena. Ingqiqo ifana nobhaliso, akunjalo? Kodwa iindlela ezintathu endaweni ezimbini, ngoko lo ngumzekelo wokuvavanya zombini iimeko ezilungileyo nezimbi. Ke, ingqiqo eqhelekileyo kukuba kufuneka uvavanye zombini iimeko: xa izinto zihamba kakuhle kwaye xa zisilela.

Ileta yeendaba entsha
Ungaphoswa zezona ndaba zibalulekileyo kutshintsho. Bhalisa ukuze uzifumane nge-imeyile.

Kwakhona, into oyibonayo kolu vavanyo kukusetyenziswa kwe Factory Database : ILaravel yenza umsebenzisi womgunyathi ( kwakhona, kwisiseko sedatha yakho ehlaziyiweyo yovavanyo ) kwaye emva koko izama ukungena, ngeenkcukacha ezichanekileyo okanye ezingachanekanga.

Kwakhona, iLaravel ivelisa umzi-mveliso wangaphambilidefinita ngedata yobuxoki ye Userimodeli, ngaphandle kwebhokisi.

database/factories/UserFactory.php:

class UserFactory extends Factory
{
    public function definition()
    {
        return [
            'name' => $this->faker->name(),
            'email' => $this->faker->unique()->safeEmail(),
            'email_verified_at' => now(),
            'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
            'remember_token' => Str::random(10),
        ];
    }
}

Uyabona, zingaphi izinto ezilungiselelwe nguLaravel ngokwakhe, ngaba kuya kuba lula ukuba siqale ukuvavanya?

Ngoko ukuba sisebenza php artisan testemva kokufaka iLaravel Breeze, kufuneka sibone into enje:

 PASS  Tests\Unit\ExampleTest
✓ that true is true
 
 PASS  Tests\Feature\Auth\AuthenticationTest
✓ login screen can be rendered
✓ users can authenticate using the login screen
✓ users can not authenticate with invalid password
 
 PASS  Tests\Feature\Auth\EmailVerificationTest
✓ email verification screen can be rendered
✓ email can be verified
✓ email is not verified with invalid hash
 
 PASS  Tests\Feature\Auth\PasswordConfirmationTest
✓ confirm password screen can be rendered
✓ password can be confirmed
✓ password is not confirmed with invalid password
 
 PASS  Tests\Feature\Auth\PasswordResetTest
✓ reset password link screen can be rendered
✓ reset password link can be requested
✓ reset password screen can be rendered
✓ password can be reset with valid token
 
 PASS  Tests\Feature\Auth\RegistrationTest
✓ registration screen can be rendered
✓ new users can register
 
 PASS  Tests\Feature\ExampleTest
✓ the application returns a successful response
 
Tests:  17 passed
Time:   0.61s

Iimvavanyo ezisebenzayo xa kuthelekiswa novavanyo lweeyunithi kunye nezinye

Uzibonile iziqulathi zeefayili tests/Feature e tests/Unit ?. 

Yintoni umahluko phakathi kwazo? 

Kwihlabathi jikelele, ngaphandle kweLaravel/PHP ecosystem, kukho iindidi ezininzi zovavanyo oluzenzekelayo. Ungafumana amagama afana nala:

  • Iimvavanyo zeyunithi
  • Uvavanyo lweempawu
  • Iimvavanyo zokudibanisa
  • Iimvavanyo ezisebenzayo
  • Uvavanyo lokuphela kokuphela
  • Iimvavanyo zokwamkela
  • Iimvavanyo zomsi
  • njl.

Ivakala intsonkothile, kwaye umahluko wokwenyani phakathi kwezi ntlobo zovavanyo ngamanye amaxesha awubonakali kakuhle. Yiyo loo nto uLaravel ewenze lula onke la magama abhidayo kwaye wawabeka kubini: iyunithi/uphawu.

Ukubeka ngokulula, iimvavanyo zeempawu zama ukwenza owona msebenzi wosetyenziso lwakho: fumana i-URL, fowunela i-API, linganisa isimilo esifana nokuzalisa ifom. Iimvavanyo zophawu zikholisa ukwenza imisebenzi efanayo okanye efanayo njengoko nawuphi na umsebenzisi weprojekthi ebeya kwenza, ngesandla, kubomi bokwenyani.

Iimvavanyo zeeyunithi zineentsingiselo ezimbini. Ngokubanzi, unokufumanisa ukuba naluphi na uvavanyo oluzenzekelayo lubizwa ngokuba "luvavanyo lweeyunithi" kwaye yonke inkqubo inokubizwa ngokuba "uvavanyo lweeyunithi". Kodwa kumxholo wokusebenza ngokuchasene neyunithi, le nkqubo imalunga nokuvavanya iyunithi ethile engeyiyo yoluntu yekhowudi, ngokuzimeleyo. Umzekelo, uneklasi yeLaravel kunye nendlela yokubala into ethile, njengexabiso elipheleleyo lomyalelo kunye neeparamitha. Ngoko ke, uvavanyo lweyunithi luya kuchaza ukuba ngaba iziphumo ezichanekileyo zibuyiswa kuloo ndlela (iyunithi yekhowudi), kunye neeparamitha ezahlukeneyo.

Ukwenza uvavanyo lweyunithi, kufuneka udibanise iflegi:

php artisan make:test OrderPriceTest --unit

Ikhowudi eyenziweyo iyafana novavanyo lweyunithi yangaphambilidefiInkqubo yeLaravel:

class OrderPriceTest extends TestCase
{
    public function test_example()
    {
        $this->assertTrue(true);
    }
}

Njengoko ubona, ayikho RefreshDatabase, kwaye le yenye ye defieyona ixhaphakileyo iinkcazelo zovavanyo lweyunithi: ayichukumisi isiseko sedatha, isebenza "njengebhokisi emnyama", ebekwe yodwa kwisicelo esisebenzayo.

Ukuzama ukuxelisa lo mzekelo bendiwukhankanye ngaphambilana, masithi sineklasi yenkonzo OrderPrice.

app/Services/OrderPriceService.php:

class OrderPriceService
{
    public function calculatePrice($productId, $quantity, $tax = 0.0)
    {
        // Some kind of calculation logic
    }
}

Emva koko, uvavanyo lweyunithi lunokujongeka ngolu hlobo:

class OrderPriceTest extends TestCase
{
    public function test_single_product_no_taxes()
    {
        $product = Product::factory()->create(); // generate a fake product
        $price = (new OrderPriceService())->calculatePrice($product->id, 1);
        $this->assertEquals(1, $price);
    }
 
    public function test_single_product_with_taxes()
    {
        $price = (new OrderPriceService())->calculatePrice($product->id, 1, 20);
        $this->assertEquals(1.2, $price);
    }
 
    // More cases with more parameters
}

Kumava am obuqu kunye neeprojekthi zeLaravel, uninzi lovavanyo luvavanyo lweNdawo, hayi iimvavanyo zeYunithi. Okokuqala, kufuneka uvavanye ukuba ingaba isicelo sakho siyasebenza na, indlela abantu bokwenyani abanokusisebenzisa ngayo.

Okulandelayo, ukuba unezibalo ezikhethekileyo okanye ingqiqo unako definire njengeyunithi, kunye neeparamitha, ungadala iimvavanyo zeyunithi ngokukodwa oko.

Ngamanye amaxesha, iimvavanyo zokubhala zifuna ukuguqulwa kwekhowudi ngokwayo kunye nokuphinda kulungiswe ukuze kuyenze "ivavanywe" ngakumbi: ukwahlula iiyunithi kwiiklasi ezikhethekileyo okanye iindlela.

Zenziwa nini/njani iimvavanyo?

Yintoni eyona nto isetyenziswayo php artisan test, kufuneka uyiqhube nini?

Kukho iindlela ezahlukeneyo, kuxhomekeke ekuhambeni komsebenzi wakho weshishini, kodwa ngokubanzi kufuneka uqinisekise ukuba zonke iimvavanyo "ziluhlaza" (oko kukuthi azinampazamo) ngaphambi kokuba utyhale utshintsho lokugqibela lwekhowudi kwindawo yokugcina.

Emva koko, usebenza kwindawo yakho kumsebenzi wakho, kwaye xa ucinga ukuba ugqibile, qhuba ezinye iimvavanyo ukuqinisekisa ukuba awophulanga nto. Khumbula, ikhowudi yakho inokubangela ii-bugs kungekuphela kwingqiqo yakho kodwa ukwaphule ngokungeyonjongo enye indlela yokuziphatha kwikhowudi yomnye umntu eyabhalwa kudala.

Ukuba sithatha inyathelo eliya phambili, kunokwenzeka ukuzenzela ezininzi izinto. Ngezixhobo ezahlukeneyo zeCI/CD, ungakhankanya iimvavanyo ekufuneka ziqhube nanini na umntu etyhala utshintsho kwisebe elithile leGit okanye phambi kokudibanisa ikhowudi kwisebe lemveliso. Eyona ndlela ilula yokuhamba iya kuba kukusebenzisa i-Github Actions, ndinayo ividiyo eyahlukileyo engqina oko.

Kufuneka uvavanye ntoni?

Kukho iimbono ezahlukeneyo malunga nokuba inkulu kangakanani into ebizwa ngokuba "yi-test coverage": zama yonke imisebenzi enokwenzeka kunye nemeko kwiphepha ngalinye, okanye unciphise umsebenzi kwiindawo ezibaluleke kakhulu.

Ngapha koko, kulapho ndivumelana khona nabantu abatyhola uvavanyo oluzenzekelayo lokuthatha ixesha elingakumbi kunokubonelela ngenzuzo yokwenyani. Oku kunokwenzeka ukuba ubhala iimvavanyo kuzo zonke iinkcukacha. Oko kwathiwa, kunokufunwa yiprojekthi yakho: umbuzo oyintloko "yintoni ixabiso lempazamo enokwenzeka".

Ngamanye amazwi, kufuneka ubeke phambili iinzame zakho zovavanyo ngokubuza umbuzo "Kuya kwenzeka ntoni ukuba le khowudi ayiphumelelanga?" Ukuba inkqubo yakho yentlawulo ineempazamo, iya kuba nefuthe ngokuthe ngqo kwishishini. Ke ukuba ukusebenza kwendima / iimvume zakho zophukile, lo ngumba omkhulu wokhuseleko.

Ndiyayithanda indlela uMat Stauffer ayibeka ngayo kwinkomfa: "Kufuneka uqale uvavanye ezo zinto, ukuba ziyasilela, zingakugxotha emsebenzini wakho." Ewe oko kukuzibaxa, kodwa ufumana umbono: zama izinto ezibalulekileyo kuqala. Kwaye ke ezinye iimpawu, ukuba unexesha.

PEST: enye indlela entsha kwi-PHPUUnit

Yonke le mizekelo ingentla isekwe kwisixhobo sovavanyo sangaphambili seLaraveldefiNONE PHPUnithi . Kodwa ekuhambeni kweminyaka ezinye izixhobo ziye zavela kwi-ecosystem kwaye enye yezona zidumileyo zamva nje UTSHINTSHO . Yenziwe ngumsebenzi osemthethweni waseLaravel UNuno Maduro , ijolise ekwenzeni lula i-syntax, ukwenza ikhowudi yokubhala kwiimvavanyo ngokukhawuleza.

Ngaphantsi kwe-hood, iyabaleka su I-PHPUUnit, njengomaleko ongezelelweyo, ukuzama nje ukunciphisa ezinye iindawo eziphindwe kabinidefiumzuzu wekhowudi yePHUnit.

Makhe sijonge umzekelo. Khumbula iklasi yovavanyo lwangaphambilidefiwazalelwa eLaravel? Ndiya kukukhumbuza:

namespace Tests\Feature;
 
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
 
class ExampleTest extends TestCase
{
    public function test_the_application_returns_a_successful_response()
    {
        $response = $this->get('/');
 
        $response->assertStatus(200);
    }
}

Ngaba uyazi ukuba uvavanyo olufanayo luya kujongeka njani nge-PEST?

test('the application returns a successful response')->get('/')->assertStatus(200);

Ewe, OMNYE umgca wekhowudi kwaye yiloo nto. Ke, injongo ye-PEST kukususa umphezulu we:

  • Ukudala iiklasi kunye neendlela zayo yonke into;
  • Ukwandiswa kwetyala lovavanyo;
  • Ngokubeka iintshukumo kwimigca eyahlukeneyo: kwi-PEST ungazidibanisa kunye.

Ukwenza uvavanyo lwe-PEST kwiLaravel, kufuneka uchaze iflegi eyongezelelweyo:

php artisan make:test HomepageTest --pest

Ukuza kuthi ga ngoku kubhalwa, i-PEST idume kakhulu phakathi kwabaphuhlisi beLaravel, kodwa kukhetho lwakho lobuqu ukuba usebenzise esi sixhobo songezelelweyo kwaye ufunde i-syntax yaso, kunye nenqaku le-PHUnit.

BlogInnovazione.it

Ileta yeendaba entsha
Ungaphoswa zezona ndaba zibalulekileyo kutshintsho. Bhalisa ukuze uzifumane nge-imeyile.

Amanqaku amva

Izibonelelo zamaphepha okufaka imibala kuBantwana-ihlabathi lomlingo kuyo yonke iminyaka

Ukuphuhlisa izakhono zemoto ngokufaka imibala kulungiselela abantwana izakhono ezinzima ezifana nokubhala. Ukufaka umbala...

2 Meyi 2024

Ikamva lilapha: Njani iShishini lokuThumela liTshintsha uQoqosho lweHlabathi

Icandelo lomkhosi wasemanzini ligunya lokwenyani loqoqosho lwehlabathi, elithe lajonga kwimarike ye-150 yeebhiliyoni...

1 Meyi 2024

Abapapashi kunye ne-OpenAI batyikitya izivumelwano zokulawula ukuhamba kolwazi oluqhutywe yiArtificial Intelligence

NgoMvulo ophelileyo, i-Financial Times ibhengeze isivumelwano kunye ne-OpenAI. I-FT ikhupha iilayisensi kubuntatheli bayo obukumgangatho wehlabathi…

30 Aprili 2024

Iintlawulo ze-Intanethi: Nantsi indlela Iinkonzo zokusasaza ezikwenza ukuba uHlawule ngonaphakade

Izigidi zabantu zihlawula iinkonzo zokusasaza, zihlawula umrhumo wenyanga. Luluvo oluqhelekileyo ukuba…

29 Aprili 2024