Articles

Ionnsaich mar a nì thu deuchainnean ann an Laravel le eisimpleirean sìmplidh, a’ cleachdadh PHPUnit agus PEST

Nuair a thig e gu deuchainnean fèin-ghluasadach no deuchainnean aonaid, ann an cànan prògramadh sam bith, tha dà bheachd eadar-dhealaichte ann:

  • ùine air chall
  • Chan urrainn dhut a dhèanamh às aonais

Mar sin, leis an artaigil seo feuchaidh sinn ri toirt a chreidsinn air a ’chiad fhear, gu sònraichte le bhith a’ sealltainn cho furasta ‘s a tha e tòiseachadh le deuchainn fèin-ghluasadach ann an Laravel.

An toiseach bruidhnidh sinn mu dheidhinn “carson”, agus an uairsin chì sinn eisimpleirean air mar a tha.

Carson a tha feum againn air deuchainn fèin-ghluasadach

Bidh deuchainnean fèin-ghluasadach a’ ruith pàirtean den chòd agus ag aithris air mearachdan sam bith. Sin an dòigh as sìmplidh air cunntas a thoirt orra. Smaoinich air feart ùr a chuir a-steach ann an app, agus an uairsin bhiodh neach-cuideachaidh robot pearsanta a’ dol agus a ’dèanamh deuchainn le làimh air an fheart ùr, agus e cuideachd a’ dèanamh deuchainn an do bhris an còd ùr gin de na seann fheartan.

Is e seo am prìomh bhuannachd: ath-dhearbhadh a h-uile feart gu fèin-ghluasadach. Is dòcha gur e obair a bharrachd a tha seo, ach mura innis thu don “robot” sin a dhèanamh, bu chòir dhuinn a dhèanamh le làimh, ceart? 

No dh ’fhaodadh feartan ùra a bhith air an leigeil ma sgaoil gun a bhith a’ dèanamh deuchainn a bheil iad ag obair, an dòchas gun toir luchd-cleachdaidh cunntas air biastagan.

Faodaidh deuchainnean fèin-ghluasadach grunn bhuannachdan a thoirt dhuinn:

  • Sàbhail ùine deuchainn làimhe;
  • Leigidh iad leat ùine a shàbhaladh an dà chuid air a’ ghnìomh ùr a chaidh a chuir an gnìomh agus air na gnìomhan daingnichte le bhith a’ seachnadh ath-thilleadh;
  • Dèan iomadachadh air a’ bhuannachd seo leis a h-uile feart ùr agus a h-uile feart a chaidh a chuir an gnìomh mar-thà;
  • Tha na trì puingean roimhe seo a’ buntainn ris a h-uile dreach ùr;
  • ...

Feuch ri smaoineachadh air an tagradh agad ann am bliadhna no dhà, le luchd-leasachaidh ùr air an sgioba aig nach eil eòlas air a’ chòd a chaidh a sgrìobhadh sna bliadhnaichean roimhe, no eadhon mar a nì thu deuchainn air. 

Na ciad dheuchainnean fèin-ghluasadach againn

Airson a 'chiad coileanadh deuchainn fèin-ghluasadach ann an Laravel, chan fheum thu còd sam bith a sgrìobhadh. Tha, leugh thu sin ceart. Tha a h-uile dad air a rèiteachadh mu thràth agus air ullachadh san ro-stàladhdefinite de Laravel, a’ toirt a-steach a’ chiad eisimpleir bhunaiteach.

Faodaidh tu feuchainn ri pròiseact Laravel a chuir a-steach agus na ciad deuchainnean a ruith sa bhad:

laravel new project
cd project
php artisan test

Bu chòir seo a bhith mar thoradh air a’ chonsail agad:

Ma bheir sinn sùil air an ro-ràdhdefinite de Laravel /tests, tha dà fhaidhle againn:

deuchainnean/Feature/ExampleTest.php :

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

Cha leig thu leas a bhith eòlach air co-chòrdadh sam bith gus tuigsinn dè tha dol air adhart an seo: luchdaich an duilleag dachaigh agus thoir sùil a bheil an còd inbhe HTTP è "200 OK".

Cuideachd aithnichte mar an t-ainm modh test_the_application_returns_a_successful_response() bidh e na theacsa a ghabhas leughadh nuair a choimheadas tu air toraidhean an deuchainn, dìreach le bhith a’ cur àite an àite an t-samhla fon loidhne.

deuchainnean/Unit/ExampleTest.php :

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

A ’coimhead rud beag gun phuing, a’ sgrùdadh a bheil seo fìor? 

Bruidhnidh sinn gu sònraichte mu dheuchainnean aonad beagan nas fhaide air adhart. Airson a-nis, feumaidh tu tuigsinn dè a thachras san fharsaingeachd anns gach deuchainn.

  • A h-uile faidhle deuchainn sa phasgan /tests na chlas PHP a tha a’ leudachadh TestCase of Aonad PHP
  • Taobh a-staigh gach clas, faodaidh tu iomadh dòigh a chruthachadh, mar as trice aon dòigh airson suidheachadh a dhearbhadh
  • Taobh a-staigh gach dòigh tha trì gnìomhan: ag ullachadh an t-suidheachaidh, an uairsin a’ dèanamh gnìomh agus an uairsin a’ dearbhadh (dearbhadh) a bheil an toradh mar a bha dùil.

Gu structarail, is e sin a dh’ fheumas tu a bhith eòlach, tha a h-uile càil eile an urra ris na dearbh rudan a tha thu airson deuchainn.

Gus clas deuchainn falamh a ghineadh, dìreach ruith an àithne seo:

php artisan make:test HomepageTest

Tha am faidhle air a ghineadh 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);
    }
}

A-nis chì sinn dè thachras ma dh’ fhailicheas còd deuchainn ann an Laravel

Chì sinn a-nis dè thachras mura till na dearbhaidhean deuchainn an toradh ris a bheil dùil.

Nach atharraich sinn na deuchainnean eisimpleir gu seo:

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

Agus a nis, ma ruitheas sinn an àithne php artisan test a-rithist:

 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

Tha dà dheuchainn air fàiligeadh, air an comharrachadh mar FAIL, le mìneachadh gu h-ìosal agus saighdean a’ comharrachadh an dearbh loidhne de dheuchainnean a dh’fhàillig. Tha mearachdan air an comharrachadh san dòigh seo.

Eisimpleir: Dèan deuchainn air còd foirm clàraidh ann an Laravel

Seach gu bheil foirm againn agus feumaidh sinn diofar chùisean a dhearbhadh: bidh sinn a’ dèanamh cinnteach a bheil e a’ fàiligeadh le dàta neo-dhligheach, bidh sinn a’ dèanamh cinnteach ma shoirbhicheas leis leis an cuir a-steach ceart, msaa.

An t-inneal tòiseachaidh oifigeil le Laravel Breeze a’ toirt a-steach i a’ dèanamh deuchainn air comas-gnìomh taobh a-staigh e. Bheir sinn sùil air beagan eisimpleirean às an sin:

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

An seo tha dà dheuchainn againn ann an aon chlas, leis gu bheil iad le chèile co-cheangailte ris an fhoirm clàraidh: bidh aon a’ sgrùdadh a bheil am foirm air a luchdachadh gu ceart agus fear eile a’ dearbhadh a bheil an tagradh ag obair gu math.

Leig leinn fàs eòlach air dà dhòigh eile airson an toradh a dhearbhadh, dà dhearbhadh eile: $this->assertAuthenticated()$response->assertRedirect(). Faodaidh tu sgrùdadh a dhèanamh air na dearbhaidhean uile a tha rim faighinn ann an sgrìobhainnean oifigeil Aonad PHP e Freagairt Laravel . Thoir an aire gu bheil cuid de dhearbhaidhean coitcheann a 'nochdadh air a' chuspair $this, fhad ‘s a bhios cuid eile a’ sgrùdadh an fhiosrachaidh shònraichte $responsebho ghairm an rathaid.

Is e rud cudromach eile an use RefreshDatabase;aithris, leis a’ bhuille, air a chuir a-steach os cionn a’ chlas. Tha e riatanach nuair a dh'fhaodas gnìomhan deuchainn buaidh a thoirt air an stòr-dàta, mar a tha san eisimpleir seo, tha logadh a 'cur a-steach inntrigeadh ùr anns an usersclàr stòr-dàta. Airson seo, bu chòir dhut stòr-dàta deuchainn fa leth a chruthachadh a thèid ùrachadh le php artisan migrate:fresha h-uile uair a thèid na deuchainnean a ruith.

Tha dà roghainn agad: cruthaich stòr-dàta fa leth gu corporra no cleachd stòr-dàta SQLite le cuimhne. Tha an dà chuid air an rèiteachadh san fhaidhle phpunit.xmlair a thoirt seachad gu bunaiteachdefinita leis Laravel. Gu sònraichte, feumaidh tu am pàirt seo:

<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>

Faic an DB_CONNECTIONDB_DATABASEdè an fheadhainn air a bheilear a’ toirt iomradh? Ma tha SQLite agad air an fhrithealaiche agad, is e an gnìomh as sìmplidh na loidhnichean sin a thoirt a-mach agus ruithidh na deuchainnean agad an aghaidh an stòr-dàta cuimhneachaidh sin.

Anns an deuchainn seo tha sinn ag ràdh gu bheil an neach-cleachdaidh air a dhearbhadh gu soirbheachail agus air ath-stiùireadh chun duilleag-dachaigh cheart, ach is urrainn dhuinn cuideachd an fhìor dàta san stòr-dàta a dhearbhadh.

A bharrachd air a’ chòd seo:

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

Faodaidh sinn cuideachd a chleachdadh dearbhaidhean deuchainn stòr-dàta agus dèan rudeigin mar seo:

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

Eisimpleir den duilleag Log a-steach

Chì sinn a-nis eisimpleir eile de dhuilleag Log a-steach le 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();
    }
}

Tha e mu dheidhinn an fhoirm logadh a-steach. Tha an loidsig coltach ri clàradh, ceart? Ach trì dòighean an àite dhà, mar sin tha seo na eisimpleir de bhith a’ dèanamh deuchainn air suidheachaidhean math agus dona. Mar sin, is e an reusanachadh cumanta gum bu chòir dhut an dà chùis a dhearbhadh: nuair a thèid cùisean gu math agus nuair a dh’ fhailicheas iad.

Leabhar-latha ùr-ghnàthachaidh
Na caill na naidheachdan as cudromaiche mu ùr-ghnàthachadh. Clàraich gus am faighinn air post-d.

Cuideachd, is e na chì thu san deuchainn seo cleachdadh Factaraidh stòr-dàta : Bidh Laravel a’ cruthachadh cleachdaiche meallta ( a-rithist, air an stòr-dàta deuchainn ùraichte agad ) agus an uairsin a’ feuchainn ri logadh a-steach, le teisteanasan ceart no ceàrr.

A-rithist, bidh Laravel a’ gineadh an fhactaraidh rodefinita le dàta meallta airson an Usermodail, taobh a-muigh a 'bhogsa.

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

Tha thu a’ faicinn, cia mheud rud a tha Laravel fhèin air ullachadh, agus mar sin am biodh e furasta dhuinn tòiseachadh air deuchainn?

Mar sin ma chuireas sinn an gnìomh php artisan testàs deidh dhuinn Laravel Breeze a chuir a-steach, bu chòir dhuinn rudeigin mar seo fhaicinn:

 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

Deuchainnean gnìomh an coimeas ri deuchainnean aonad agus feadhainn eile

Tha thu air na fo-fhònaichean fhaicinn tests/Feature e tests/Unit ?. 

Dè an diofar a tha eatorra? 

Gu cruinneil, taobh a-muigh eag-shiostam Laravel / PHP, tha grunn sheòrsaichean de dheuchainnean fèin-ghluasadach ann. Gheibh thu teirmean mar:

  • Deuchainnean aonad
  • Feart deuchainn
  • Deuchainnean amalachaidh
  • Deuchainnean gnìomh
  • Deuchainn deireadh-gu-deireadh
  • Deuchainnean gabhail
  • Deuchainnean smoc
  • etc.

Tha e coltach gu bheil e toinnte, agus uaireannan bidh na h-eadar-dhealachaidhean fìor eadar na deuchainnean sin uaireannan doilleir. Sin as coireach gu bheil Laravel air na teirmean troimh-chèile sin a dhèanamh nas sìmplidhe agus air an cruinneachadh ann an dà: aonad / feart.

Gu sìmplidh, feuchaidh deuchainnean feart ri fìor ghnìomhachd nan tagraidhean agad a chuir an gnìomh: faigh an URL, cuir fios chun API, dèan atharrais air an dearbh ghiùlan mar lìonadh am foirm. Mar as trice bidh deuchainnean feart a’ coileanadh na h-aon obrachaidhean no obair coltach ris a dhèanadh neach-cleachdaidh pròiseict sam bith, le làimh, ann am fìor bheatha.

Tha dà bhrìgh aig deuchainnean aonad. San fharsaingeachd, is dòcha gum faigh thu a-mach gur e “deuchainn aonad” a chanar ri deuchainn fèin-ghluasadach sam bith agus gur e “deuchainn aonad” a chanar ris a’ phròiseas gu lèir. Ach ann an co-theacsa gnìomhachd an aghaidh aonad, tha am pròiseas seo mu dheidhinn a bhith a’ dèanamh deuchainn air aonad còd sònraichte neo-phoblach, leotha fhèin. Mar eisimpleir, tha clas Laravel agad le dòigh a bhios a’ tomhas rudeigin, mar a’ phrìs òrduigh iomlan le paramadairean. Mar sin, bhiodh an deuchainn aonad ag innse a bheil toraidhean ceart air an tilleadh bhon dòigh sin (aonad còd), le diofar pharaimearan.

Gus deuchainn aonad a ghineadh, feumaidh tu bratach a chuir ris:

php artisan make:test OrderPriceTest --unit

Tha an còd a chaidh a chruthachadh an aon rud ris an deuchainn ro-aonaddefiSiostam Laravel:

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

Mar a chì thu, chan eil e ann RefreshDatabase, agus is e seo aon de defimìneachaidhean deuchainn aonad as cumanta: chan eil e a’ suathadh ris an stòr-dàta, bidh e ag obair mar “bogsa dubh”, dealaichte bhon tagradh ruith.

A’ feuchainn ris an eisimpleir air an tug mi iomradh na bu thràithe, smaoinich sinn gu bheil clas seirbheis againn OrderPrice.

app/Services/OrderPriceService.php:

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

An uairsin, dh’ fhaodadh an deuchainn aonad coimhead mar seo:

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
}

Anns an eòlas pearsanta agam le pròiseactan Laravel, is e deuchainnean Feart a th’ anns a’ mhòr-chuid de dheuchainnean, chan e deuchainnean Aonaid. An toiseach, feumaidh tu deuchainn a dhèanamh a bheil an tagradh agad ag obair, mar a bhiodh fìor dhaoine ga chleachdadh.

An ath rud, ma tha àireamhachadh no loidsig sònraichte agad faodaidh tu defiNire mar aonad, le crìochan, faodaidh tu deuchainnean aonad a chruthachadh gu sònraichte airson sin.

Aig amannan, feumar deuchainnean sgrìobhaidh atharrachadh a’ chòd fhèin agus ath-mheudachadh gus a dhèanamh nas “testable”: a’ sgaradh nan aonadan gu clasaichean no dòighean sònraichte.

Cuin / ciamar a nì thu deuchainnean?

Dè an fhìor chleachdadh a tha seo php artisan test, cuin a bu chòir dhut a ruith?

Tha diofar dhòighean-obrach ann, a rèir do shruth-obrach gnìomhachais, ach san fharsaingeachd feumaidh tu dèanamh cinnteach gu bheil a h-uile deuchainn “uaine” (ie gun mhearachd) mus cuir thu na h-atharrachaidhean còd deireannach air an stòr.

An uairsin, bidh thu ag obair gu h-ionadail air do ghnìomh, agus nuair a smaoinicheas tu gu bheil thu deiseil, ruith cuid de dheuchainnean gus dèanamh cinnteach nach do bhris thu dad. Cuimhnich, faodaidh do chòd biastagan adhbhrachadh chan ann a-mhàin nad loidsig ach cuideachd gun a bhith a’ briseadh giùlan eile ann an còd cuideigin eile a chaidh a sgrìobhadh o chionn fhada.

Ma bheir sinn ceum nas fhaide air adhart, tha e comasach fèin-ghluasad mòran rudan. Le diofar innealan CI / CD, faodaidh tu deuchainnean a shònrachadh airson ruith nuair a phut cuideigin atharrachaidhean gu meur sònraichte Git no mus cuir thu còd còmhla ris a’ mheur riochdachaidh. Is e an sruth-obrach as sìmplidh Gnìomhan Github a chleachdadh, tha agam bhidio air leth a tha ga dhearbhadh.

Dè bu chòir dhut deuchainn?

Tha diofar bheachdan ann air dè cho mòr ‘s a bu chòir an“ còmhdach deuchainn ”a bhith: feuch a h-uile gnìomh agus cùis a dh’ fhaodadh a bhith ann air gach duilleag, no cuingealaich an obair gu na pàirtean as cudromaiche.

Gu dearbh, seo far a bheil mi ag aontachadh le daoine a tha a’ casaid deuchainnean fèin-ghluasadach gun tug iad barrachd ùine na bhith a’ toirt seachad buannachd dha-rìribh. Faodaidh seo tachairt ma sgrìobhas tu deuchainnean airson a h-uile mion-fhiosrachadh. Thuirt sin, is dòcha gu bheil feum air a’ phròiseact agad: is e a’ phrìomh cheist “dè a’ phrìs a th’ ann airson mearachd a dh’fhaodadh a bhith ann”.

Ann am faclan eile, feumaidh tu prìomhachas a thoirt do na h-oidhirpean deuchainn agad le bhith a’ faighneachd na ceiste “Dè thachradh nam fàilligeadh an còd seo?” Ma tha bugaichean air an t-siostam pàighidh agad, bheir e buaidh dhìreach air a’ ghnìomhachas. Mar sin ma tha gnìomhachd do dhleastanasan / ceadan briste, tha seo na chùis tèarainteachd mhòr.

Is toil leam mar a chuir Matt Stauffer e aig co-labhairt: “Feumaidh tu an-toiseach deuchainn a dhèanamh air na rudan sin, ma dh’ fhailicheas iad, a gheibheadh ​​​​tu às do dhreuchd. ” Gu dearbh is e iomadachadh a tha sin, ach gheibh thu am beachd: feuch an stuth cudromach an-toiseach. Agus an uairsin feartan eile, ma tha ùine agad.

PEST: roghainn eile an àite PHPUnit

Tha na h-eisimpleirean gu h-àrd uile stèidhichte air inneal ro-dheuchainn Laraveldefinite: Aonad PHP . Ach thar nam bliadhnaichean tha innealan eile air nochdadh anns an eag-shiostam agus tha aon den fheadhainn as mòr-chòrdte POST . Air a chruthachadh le neach-obrach oifigeil Laravel Maduro Nuno , ag amas air an co-chòrdadh a dhèanamh nas sìmplidhe, a 'dèanamh còd sgrìobhaidh airson deuchainnean eadhon nas luaithe.

Fon chochall, tha e a 'ruith su PHPUnit, mar shreath a bharrachd, dìreach a’ feuchainn ri cuid de phàirtean a chaidh ath-aithris a lughdachadhdefigu h-ìosal den chòd PHPUnit.

Bheir sinn sùil air eisimpleir. Cuimhnich an clas deuchainn ro-fheartdefisuidhichte ann an Laravel? Cuiridh mi nad chuimhne:

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

A bheil fios agad cò ris a bhiodh an aon deuchainn coltach ri PEST?

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

Tha, AON loidhne de chòd agus sin e. Mar sin, is e amas PEST an còrr de:

  • cruthachadh chlasaichean agus modhan airson a h-uile rud;
  • leudachadh cùis deuchainn;
  • Le bhith a’ cur ghnìomhan air loidhnichean fa leth: ann am PEST faodaidh tu an ceangal ri chèile.

Gus deuchainn PEST a ghineadh ann an Laravel, feumaidh tu bratach a bharrachd a shònrachadh:

php artisan make:test HomepageTest --pest

A thaobh an sgrìobhaidh seo, tha fèill mhòr air PEST am measg luchd-leasachaidh Laravel, ach is e do roghainn pearsanta am bu chòir dhut an inneal a bharrachd seo a chleachdadh agus a cho-chòrdadh ionnsachadh, a bharrachd air nota PHPUnit.

BlogInnovazione.it

Leabhar-latha ùr-ghnàthachaidh
Na caill na naidheachdan as cudromaiche mu ùr-ghnàthachadh. Clàraich gus am faighinn air post-d.