Izihloko

Funda ukwenza izivivinyo ku-Laravel ngezibonelo ezilula, usebenzisa i-PHPUnit ne-PEST

Uma kuziwa ekuhlolweni okuzenzakalelayo noma ukuhlolwa kweyunithi, kunoma yiluphi ulimi lohlelo, kunemibono emibili ephikisanayo:

  • Uikuchitha iskhathi
  • Awukwazi ukwenza ngaphandle kwayo

Ngakho-ke, ngalesi sihloko sizozama ukukholisa owokuqala, ikakhulukazi ngokubonisa ukuthi kulula kangakanani ukuqalisa ngokuhlolwa okuzenzakalelayo eLaravel.

Okokuqala ake sikhulume ngokuthi "kungani", bese sibona ezinye izibonelo zendlela.

Kungani sidinga ukuhlolwa okuzenzakalelayo

Ukuhlola okuzenzakalelayo kusebenzisa izingxenye zekhodi futhi kubike noma imaphi amaphutha. Leyo yindlela elula yokuzichaza. Cabanga nje wethula isici esisha kuhlelo lokusebenza, bese umsizi werobhothi eyohamba ayohlola mathupha isici esisha, kuyilapho ehlola ukuthi ingabe ikhodi entsha ayizange iphule noma yiziphi izici ezindala.

Lena inzuzo enkulu: ukuhlola kabusha zonke izici ngokuzenzakalelayo. Lokhu kungase kubonakale njengomsebenzi owengeziwe, kodwa uma ungatsheli “irobhothi” ukuthi likwenze, kufanele sikwenze mathupha, akunjalo? 

Noma izici ezintsha zingakhishwa ngaphandle kokuhlola ukuthi ziyasebenza yini, ngethemba lokuthi abasebenzisi bazobika iziphazamisi.

Ukuhlola okuzenzakalelayo kungasinika izinzuzo ezimbalwa:

  • Londoloza isikhathi sokuhlola mathupha;
  • Zikuvumela ukuthi wonge isikhathi kokubili kumsebenzi omusha oqalisiwe kanye nasezinhlelweni ezihlanganisiwe ngokugwema ukuhlehla;
  • Phindaphinda le nzuzo ngazo zonke izici ezintsha nazo zonke izici esezivele zifakiwe;
  • Amaphuzu amathathu adlule asebenza kuzo zonke izinguqulo ezintsha;
  • ...

Zama ukucabanga uhlelo lwakho lokusebenza onyakeni owodwa noma emibili, ngonjiniyela abasha eqenjini abangayazi ikhodi ebhalwe eminyakeni edlule, noma ihlolwa kanjani. 

Ukuhlola kwethu kokuqala okuzenzakalelayo

Ukwenza okokuqala ukuhlola okuzenzakalelayo eLaravel, awudingi ukubhala noma iyiphi ikhodi. Yebo, ufunda lokho kahle. Yonke into isivele imisiwe futhi ilungisiwe ekufakweni kwangaphambilinidefiNite of Laravel, kuhlanganise nesibonelo sokuqala esiyisisekelo.

Ungazama ukufaka iphrojekthi ye-Laravel futhi uqalise izivivinyo zokuqala ngokushesha:

laravel new project
cd project
php artisan test

Lokhu kufanele kube umphumela kukhonsoli yakho:

Uma sibheka phambilidefiusuku lukaLaravel /tests, sinamafayela amabili:

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 noma iyiphi i-syntax ukuze uqonde ukuthi kwenzekani lapha: layisha ikhasi lasekhaya bese uhlola ukuthi ikhodi yesimo HTTP è "200 OK".

Yaziwa nangokuthi igama lendlela test_the_application_returns_a_successful_response() iba umbhalo ofundekayo uma ubheka imiphumela yokuhlolwa, ngokumane ushintshe uphawu lokudwebela ngesikhala.

tests/Unit/ExampleTest.php :

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

Kubonakala kungenangqondo, ubheka ukuthi lokhu kuyiqiniso yini? 

Sizokhuluma ngokuqondile mayelana nokuhlolwa kweyunithi kamuva nje. Okwamanje, udinga ukuqonda ukuthi yini ngokuvamile eyenzekayo esivivinyweni ngasinye.

  • Ifayela ngalinye lokuhlola kufolda /tests yikilasi le-PHP elinweba i-TestCase ye I-PHPUnit
  • Ngaphakathi kwekilasi ngalinye, ungakha izindlela eziningi, ngokuvamile indlela eyodwa ukuze isimo sihlolwe
  • Ngaphakathi kwendlela ngayinye kunezenzo ezintathu: ukulungiswa kwesimo, bese wenza bese uqinisekisa (uqinisekisa) ukuthi umphumela ulindelekile yini.

Ngokwesakhiwo, yilokho kuphela okudingeka ukwazi, konke okunye kuncike ezintweni ngqo ofuna ukuzihlola.

Ukuze ukhiqize ikilasi lokuhlola elingenalutho, mane usebenzise lo myalo:

php artisan make:test HomepageTest

Ifayela liyakhiqizwa 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);
    }
}

Manje ake sibone ukuthi yini eyenzekayo uma ikhodi yokuhlola yehluleka ku-Laravel

Manje ake sibone ukuthi yini eyenzekayo uma ukugomela kokuhlolwa kungabuyisi umphumela olindelekile.

Masiguqule izivivinyo eziyisibonelo zibe lokhu:

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);
    }
}

Futhi manje, uma sisebenzisa umyalo php artisan test futhi:

 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

Kukhona ukuhlola okubili okuhlulekile, okumakwe njengokuthi FAIL, okunezincazelo ngezansi kanye nemicibisholo ekhomba umugqa oqondile wokuhlola ohlulekile. Amaphutha akhonjiswe ngale ndlela.

Isibonelo: Ihlola ikhodi yefomu lokubhalisa e-Laravel

Ake sithi sinefomu futhi sidinga ukuhlola izimo ezihlukahlukene: sihlola ukuthi liyahluleka yini ngedatha engavumelekile, sihlola ukuthi liyaphumelela yini ngokufaka okulungile, njll.

Ikhithi yokuqala esemthethweni nguLaravel Breeze kuhlanganisa i ukuhlola ukusebenza ngaphakathi kwayo. Ake sibheke ezinye izibonelo ezivela lapho:

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);
    }
}

Lapha sinezivivinyo ezimbili ekilasini elilodwa, njengoba zombili zihlobene nefomu lokubhalisa: eyodwa ihlola ukuthi ifomu lilayishwe ngendlela efanele yini futhi enye ihlola ukuthi ukuhanjiswa kusebenza kahle yini.

Ake sijwayelane nezinye izindlela ezimbili zokuqinisekisa umphumela, ukugomela okunye okubili: $this->assertAuthenticated()$response->assertRedirect(). Ungahlola zonke izigomela ezitholakala emibhalweni esemthethweni ye I-PHPUnit e Impendulo esuka ku Laravel . Qaphela ukuthi okunye ukugomela okuvamile kwenzeka ngale ndaba $this, kuyilapho abanye behlola okuqondile $responsekusuka ocingweni lomzila.

Enye into ebalulekile yi- use RefreshDatabase;isitatimende, nge-stroke, efakwe ngaphezu kwekilasi. Kuyadingeka lapho izenzo zokuhlola zingathinta isizindalwazi, njengoba kulesi sibonelo, ukungena kungeza into entsha ku- usersithebula lesizindalwazi. Ngalokhu, kufanele udale isizindalwazi sokuhlola esihlukile esizobuyekezwa ngaso php artisan migrate:freshnjalo ukuhlolwa kwenziwa.

Unezinketho ezimbili: dala ngokwangempela isizindalwazi esihlukile noma sebenzisa isizindalwazi se-SQLite esenkumbulo. Zombili zicushwe kufayela phpunit.xmlkuhlinzekwe ngokuzenzakalelayodefinita nge I-Laravel. Ngokukhethekile, udinga le ngxenye:

<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_DATABASEyiziphi okuphawulwa ngazo? Uma une-SQLite kuseva yakho, isenzo esilula ukuvele uyekise leyo migqa futhi ukuhlola kwakho kuzosebenza kuleyo datha egciniwe yenkumbulo.

Kulesi sivivinyo sithi umsebenzisi ugunyazwe ngempumelelo futhi uqondiswe kabusha ekhasini eliyisiqalo elilungile, kodwa singaphinda sihlole idatha yangempela kusizindalwazi.

Ngaphezu kwale khodi:

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

Singasebenzisa futhi iziqinisekiso zokuhlolwa kwesizindalwazi futhi wenze okufana nalokhu:

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

Isibonelo sekhasi lokungena ngemvume

Manje ake sibone esinye isibonelo sekhasi lokungena nge-Laravel 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();
    }
}

Imayelana nefomu lokungena. I-logic ifana nokubhalisa, akunjalo? Kodwa izindlela ezintathu esikhundleni sezimbili, ngakho-ke lesi yisibonelo sokuhlola kokubili izimo ezinhle nezimbi. Ngakho-ke, umqondo ojwayelekile ukuthi kufanele uhlole womabili amacala: lapho izinto zihamba kahle nalapho zehluleka.

Innovation newsletter
Ungaphuthelwa yizindaba ezibaluleke kakhulu zokuqamba. Bhalisa ukuze uthole nge-imeyili.

Futhi, okubonayo kulokhu kuhlolwa ukusetshenziswa kwe Database Factories : I-Laravel idala umsebenzisi mbumbulu ( futhi, kusizindalwazi sakho sokuhlola esibuyekeziwe ) bese uzama ukungena ngemvume, ngemininingwane elungile noma engalungile.

Nakulokhu, iLaravel ikhiqiza i-factory predefinita ngedatha engamanga 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, zingaki izinto ezilungiswa nguLaravel uqobo, ngakho-ke kungaba lula ngathi ukuthi siqale ukuhlola?

Ngakho uma sikwenza php artisan testngemuva kokufaka i-Laravel Breeze, kufanele sibone into enjengale:

 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

Ukuhlolwa okusebenzayo uma kuqhathaniswa nokuhlolwa kweyunithi nokunye

Uwabonile amafolda angaphansi tests/Feature e tests/Unit ?. 

Uyini umehluko phakathi kwabo? 

Emhlabeni jikelele, ngaphandle kwe-Laravel/PHP ecosystem, kunezinhlobo ezimbalwa zokuhlola okuzenzakalelayo. Ungathola amagama afana nalawa:

  • Ukuhlolwa kweyunithi
  • Ukuhlolwa kwesici
  • Ukuhlolwa kokuhlanganisa
  • Ukuhlolwa okusebenzayo
  • Ukuhlola kokugcina
  • Ukuhlolwa kokwamukela
  • Ukuhlolwa kwentuthu
  • njll.

Kuzwakala kuyinkimbinkimbi, futhi umehluko wangempela phakathi kwalezi zinhlobo zokuhlola ngezinye izikhathi uyafiphala. Kungakho uLaravel ewenze lula wonke la magama adidayo futhi wawahlanganisa abe ngamabili: iyunithi/isici.

Kalula nje, ukuhlolwa kwesici kuzama ukwenza ukusebenza kwangempela kwezinhlelo zakho zokusebenza: thola i-URL, shayela i-API, ulingise impatho efana nokugcwalisa ifomu. Ukuhlolwa kwesici kuvamise ukwenza imisebenzi efanayo noma efanayo njenganoma yimuphi umsebenzisi wephrojekthi angayenza, mathupha, empilweni yangempela.

Ukuhlolwa kweyunithi kunezincazelo ezimbili. Ngokuvamile, ungathola ukuthi noma yikuphi ukuhlola okuzenzakalelayo kubizwa ngokuthi "ukuhlolwa kweyunithi" futhi yonke inqubo ingabizwa ngokuthi "ukuhlolwa kweyunithi". Kodwa esimweni sokusebenza kuqhathaniswa neyunithi, le nqubo imayelana nokuhlola iyunithi yekhodi ethile engeyona eyomphakathi, ngokuhlukaniswa. Isibonelo, unesigaba se-Laravel esinendlela ebala okuthile, njengenani lentengo yoku-oda namapharamitha. Ngakho-ke, ukuhlolwa kweyunithi kuzosho ukuthi imiphumela efanele iyabuyiswa yini kusukela kuleyo ndlela (iyunithi yekhodi), ngamapharamitha ahlukene.

Ukuze ukhiqize ukuhlolwa kweyunithi, udinga ukungeza ifulegi:

php artisan make:test OrderPriceTest --unit

Ikhodi ekhiqiziwe iyafana nokuhlolwa kweyunithi yangaphambilidefiIsistimu ye-Laravel:

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

Njengoba ubona, ayikho RefreshDatabase, futhi lokhu kungenye ye defiizincazelo ezijwayelekile zokuhlolwa kweyunithi: ayisithinti isizindalwazi, isebenza “njengebhokisi elimnyama”, elihlukanisiwe nohlelo lokusebenza olusebenzayo.

Ukuzama ukulingisa isibonelo engikhulume ngaso ekuqaleni, ake sicabange sinekilasi lenkonzo OrderPrice.

app/Services/OrderPriceService.php:

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

Bese, ukuhlolwa kweyunithi kungabukeka kanjena:

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
}

Ngokuhlangenwe nakho kwami ​​​​komuntu siqu ngamaphrojekthi we-Laravel, izivivinyo eziningi ziwukuhlolwa kwesici, hhayi ukuhlolwa kweyunithi. Okokuqala, udinga ukuhlola ukuthi uhlelo lwakho lokusebenza luyasebenza, indlela abantu bangempela abangalusebenzisa ngayo.

Okulandelayo, uma unezibalo ezikhethekile noma logic ungakwazi definire njengeyunithi, enamapharamitha, ungakha ukuhlola kweyunithi yalokho.

Kwesinye isikhathi, ukubhala izivivinyo kudinga ukulungisa ikhodi ngokwayo futhi yenziwe kabusha ukuze iyenze "ihlole" kakhudlwana: ukuhlukanisa amayunithi abe amakilasi akhethekile noma izindlela.

Kwenziwa nini/kanjani ukuhlolwa?

Kuyini ukusetshenziswa kwangempela kwalokhu php artisan test, kufanele uyigijime nini?

Kunezindlela ezihlukene, kuye ngokusebenza kwebhizinisi lakho, kodwa ngokuvamile udinga ukuqinisekisa ukuthi zonke izivivinyo “ziluhlaza” (okungukuthi azinawo amaphutha) ngaphambi kokuphusha izinguquko zakamuva zekhodi endaweni yokugcina.

Bese, usebenza endaweni emsebenzini wakho, futhi uma ucabanga ukuthi usuqedile, yenza izivivinyo ukuze uqiniseke ukuthi awuphulanga lutho. Khumbula, ikhodi yakho ingase ibangele iziphazamisi hhayi kuphela kungqondongqondo yakho kodwa futhi iphule ngokungenhloso okunye ukuziphatha kukhodi yomunye umuntu eyabhalwa kudala.

Uma sithatha isinyathelo esiqhubekayo, kungenzeka ukuzenzela i-molte izinto. Ngamathuluzi ahlukahlukene e-CI/CD, ungacacisa ukuhlola okufanele ukwenze noma nini lapho othile ephusha izinguquko egatsheni elithile le-Git noma ngaphambi kokuhlanganisa ikhodi egatsheni lokukhiqiza. Ukuhamba komsebenzi okulula kungaba ukusebenzisa Izenzo ze-Github, enginakho ividiyo ehlukile okufakazela lokho.

Yini okufanele uyihlole?

Kunemibono ehlukene yokuthi lokho okubizwa ngokuthi "i-test coverage" kufanele kube kungakanani: zama konke ukusebenza okungenzeka kanye necala ekhasini ngalinye, noma ubeke umsebenzi ezingxenyeni ezibaluleke kakhulu.

Eqinisweni, kulapho ngivumelana khona nabantu abasola ukuhlola okuzenzakalelayo ngokuthatha isikhathi esiningi kunokunikeza inzuzo yangempela. Lokhu kungenzeka uma ubhala izivivinyo zayo yonke imininingwane eyodwa. Sekushiwo lokho, kungase kudingwe iphrojekthi yakho: umbuzo oyinhloko uthi "iyini intengo yephutha elingenzeka".

Ngamanye amazwi, udinga ukubeka phambili imizamo yakho yokuhlola ngokubuza umbuzo othi “Kungenzekani uma le khodi yehluleka?” Uma isistimu yakho yokukhokha ineziphazamisi, izoba nomthelela ngqo ebhizinisini. Ngakho-ke uma ukusebenza kwezindima/izimvume zakho kuphukile, lokhu kuyinkinga enkulu yezokuphepha.

Ngithanda indlela u-Matt Stauffer akubeka ngayo engqungqutheleni: “Kufanele uqale uhlole lezo zinto okuthi, uma zehluleka, zikwenze uxoshwe emsebenzini wakho.” Impela lokho kuyihaba, kodwa uthola umqondo: zama izinto ezibalulekile kuqala. Futhi-ke nezinye izici, uma unesikhathi.

I-PEST: enye indlela entsha ye-PHUnit

Zonke izibonelo ezingenhla zisekelwe ethuluzini lokuhlola langaphambili le-Laraveldefiusuku: I-PHPUnit . Kodwa ngokuhamba kweminyaka kuye kwavela amanye amathuluzi ku-ecosystem futhi elinye lakamuva elidumile ISINAMBUZANE . Idalwe isisebenzi esisemthethweni saseLaravel UNuno Maduro , ihlose ukwenza lula i-syntax, ukwenza ikhodi yokubhala yokuhlola isheshe nakakhulu.

Ngaphansi kwe-hood, iyagijima su I-PHPUnit, njengesendlalelo esengeziwe, izama nje ukunciphisa izingxenye ezithile eziphindaphindwe ngaphambilinidefiusuku lwekhodi ye-PHUnit.

Ake sibheke isibonelo. Khumbula ikilasi lokuhlola lesici sangaphambilidefiwazalelwa eLaravel? Ngizokukhumbuza:

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);
    }
}

Uyazi ukuthi ukuhlolwa okufanayo kungabukeka kanjani nge-PEST?

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

Yebo, umugqa OWODWA wekhodi futhi yilokho. Ngakho-ke, inhloso ye-PEST ukususa i-overhead yalokhu:

  • Ukudala amakilasi nezindlela zayo yonke into;
  • Isandiso secala lokuhlola;
  • Ngokubeka izenzo emigqeni ehlukene: ku-PEST ungazihlanganisa ndawonye.

Ukuze ukhiqize ukuhlolwa kwe-PEST ku-Laravel, udinga ukucacisa ifulegi elingeziwe:

php artisan make:test HomepageTest --pest

Ngalokhu kubhalwa, i-PEST idume kakhulu phakathi konjiniyela be-Laravel, kodwa kuyintandokazi yakho ukuthi usebenzise leli thuluzi elengeziwe futhi ufunde i-syntax yalo, kanye nenothi le-PHUnit.

BlogInnovazione.it

Innovation newsletter
Ungaphuthelwa yizindaba ezibaluleke kakhulu zokuqamba. Bhalisa ukuze uthole nge-imeyili.

Izihloko zakamuva

I-Veeam ifaka ukusekelwa okuphelele kakhulu kwe-ransomware, kusukela ekuvikelweni kuya ekuphenduleni nasekululameni

I-Coveware ye-Veeam izoqhubeka nokuhlinzeka ngezinsizakalo zokuphendula izigameko zokuntshontshwa kwe-inthanethi. I-Coveware izohlinzeka ngama-forensics kanye nekhono lokulungisa…

23 April 2024

Inguquko Eluhlaza Nedijithali: Indlela Ukugcinwa Okubikezelwayo Kuyiguqula Kanjani Imboni Kawoyela Negesi

Ukulungiswa okuqagelayo kuguqula umkhakha kawoyela negesi, ngendlela emisha nesebenzayo yokuphatha izitshalo.…

22 April 2024

Isilawuli se-antitrust sase-UK siphakamisa i-alamu ye-BigTech nge-GenAI

I-CMA yase-UK ikhiphe isexwayiso mayelana nokuziphatha kwe-Big Tech emakethe yezobunhloli bokwenziwa. Lapho…

18 April 2024

I-Casa Green: inguquko yamandla yekusasa elisimeme e-Italy

Isinqumo esithi "Case Green", esakhiwe yi-European Union ukuze kuthuthukiswe ukusebenza kahle kwamandla ezakhiwo, siphothule inqubo yaso yomthetho ngokuthi...

18 April 2024