Cara menggunakan Codeception untuk ujian berfungsi dalam PHP

WBOY
Lepaskan: 2023-06-27 10:08:01
asal
1334 orang telah melayarinya

Dengan pembangunan berterusan pembangunan perisian, ujian memainkan peranan yang semakin penting dalam keseluruhan proses pembangunan. Dalam kerja ujian, ujian fungsian adalah kaedah ujian yang paling asas dan penting. Sebagai bahasa pengaturcaraan bahagian pelayan yang digunakan secara meluas, ujian fungsi PHP juga perlu dijamin. Jadi hari ini kami akan memperkenalkan cara menggunakan Codeception untuk ujian fungsi PHP.

Codeception ialah rangka kerja ujian PHP yang sangat baik, yang direka bentuk agar mudah digunakan, mudah dikembangkan dan mudah diselenggara. Codeception bukan sahaja menyediakan ujian unit asas dan fungsi ujian integrasi, tetapi yang lebih penting, ia menyokong model pembangunan seperti BDD (Pembangunan Didorong Tingkah Laku) dan TDD (Pembangunan Didorong Ujian), yang boleh meningkatkan kecekapan kerja dan kualiti ujian.

Kemudian mari kita perkenalkan cara menggunakan Codeception untuk ujian berfungsi.

Pertama, kita perlu memasang Codeception. Codeception boleh dipasang melalui Composer. Buka terminal, masukkan direktori akar projek anda, dan laksanakan arahan berikut untuk menyelesaikan pemasangan.

composer require codeception/codeception --dev
Salin selepas log masuk

Selepas pemasangan selesai, kita boleh menggunakan arahan berikut untuk menjana fail ujian:

vendor/bin/codecept generate:test functional Login
Salin selepas log masuk

Selepas melaksanakan arahan ini, fail ujian bernama LoginCept.php akan dijana dalam direktori ujian/fungsi. Dalam fail ini kami boleh menulis kes ujian kami.

Codeception menggunakan akhiran Cept sebagai tanda, menunjukkan bahawa ini adalah mod ujian berasaskan senario. Dalam fail Cept, kita boleh menulis berbilang senario ujian dan menggunakan pembolehubah $I untuk mengasingkan setiap senario ujian. Dalam fail Cept, kita boleh menggunakan $I untuk mewakili objek ujian semasa. Sebagai contoh, kita boleh menulis kod ujian berikut:

$I = new FunctionalTester($scenario);
$I->wantTo('ensure that login works');
$I->amOnPage('/login');
$I->fillField('input[name="LoginForm[username]"]', 'admin');
$I->fillField('input[name="LoginForm[password]"]', 'admin');
$I->click('login-button');
$I->see('Logout');
Salin selepas log masuk

Dalam kod ujian di atas, kami menggunakan objek $I untuk ujian halaman, mula-mula mengakses halaman log masuk melalui kaedah amOnPage, kemudian menggunakan kaedah fillField untuk mengisi borang, dan akhirnya menggunakan kaedah klik Klik butang log masuk untuk melihat sama ada anda boleh log masuk dengan jayanya dan melihat gesaan Log Keluar.

Selain fail Cept, Codeception juga menyokong tiga kaedah ujian: Cest dan Test. Perbezaan utama antara Cest dan Cept ialah Cest boleh menulis kaedah ujian dalam bentuk kelas, menjadikan pelaksanaan kod lebih jelas. Ujian menyokong kaedah ujian yang lebih fleksibel, anda bukan sahaja boleh menggunakan kaedah PHPUnit, tetapi anda juga boleh menggunakan kaedah ujian lain seperti Cept dan Cest, yang meningkatkan kebolehgunaan semula kod.

Apabila melakukan ujian Codeception, kita perlu meletakkan objek ujian dalam atribut $tester yang dilindungi untuk memastikan objek ujian boleh digunakan semula dalam berbilang kaedah ujian.

<?php
class LoginCest
{
    protected $tester;

    public function _before()
    {
    }

    public function _after()
    {
    }

    // tests
    public function ensureThatLoginWorks(AcceptanceTester $I)
    {
        $I->wantTo('ensure that login works');
        $I->amOnPage('/login');
        $I->fillField('input[name="LoginForm[username]"]', 'admin');
        $I->fillField('input[name="LoginForm[password]"]', 'admin');
        $I->click('login-button');
        $I->see('Logout');
    }
}
Salin selepas log masuk

Selain kaedah ujian kefungsian asas, Codeception juga menyokong pelbagai kaedah ujian plug-in, yang boleh menjadikan ujian lebih cekap dan mudah semasa proses ujian. Contohnya, Codeception menyokong penggunaan WebDriver dan Selenium WebDriver untuk ujian automasi halaman, dan juga menyokong penggunaan API, ujian antara muka RESTFul dan ujian pangkalan data. Kaedah ujian pemalam ini telah meluaskan skop ujian Codeception, membolehkan kami melakukan pelbagai tugas ujian dengan mudah.

Faedah Codeception bukan sahaja terletak pada fungsinya yang kaya dan pengembangan yang mudah, tetapi juga dalam pelaporan ujian yang baik dan analisis keputusan ujian. Selepas ujian selesai, kami boleh menjana laporan ujian yang sepadan untuk melihat keputusan ujian, kadar lulus, bilangan ujian yang gagal dan penunjuk lain. Pada masa yang sama, laporan ujian Codeception juga boleh disepadukan dengan alat CI/CD (kebanyakannya disepadukan dengan Jenkins), membolehkan kami mengurus dan mengekalkan sejumlah besar kerja ujian dengan lebih mudah.

Secara amnya, Codeception menyediakan alat ujian berfungsi yang kaya dan komprehensif, berfungsi dengan baik dalam pelbagai senario ujian dan pada masa ini merupakan salah satu rangka kerja ujian PHP terbaik. Menggunakan Codeception untuk ujian berfungsi boleh memastikan kualiti dan kestabilan sistem kami dan memainkan peranan penting dalam kerja pembangunan Adalah disyorkan agar pembangun memperkenalkan Codeception ke dalam kerja mereka untuk menjadikan ujian kami berfungsi lebih dipercayai dan cemerlang.

Atas ialah kandungan terperinci Cara menggunakan Codeception untuk ujian berfungsi dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!