Dalam proses pembangunan aplikasi web moden, ujian fungsian merupakan aspek penting untuk memastikan kualiti aplikasi. Codeception ialah rangka kerja ujian PHP popular yang menyediakan API ringkas dan sintaks yang mudah difahami untuk membantu kami menulis ujian fungsi web yang cekap. Artikel ini akan memperkenalkan cara menggunakan Codeception untuk ujian berfungsi.
1. Pasang Codeception
Pertama, kita perlu memasang Codeception. Codeception menyokong beberapa cara untuk memasang, termasuk Komposer, pakej phar dan muat turun manual. Di sini kami menggunakan Composer untuk memasang, cuma laksanakan arahan berikut:
composer require codeception/codeception --dev
Selepas pemasangan selesai, kami boleh menjana fail konfigurasi codeception.yml
dalam direktori akar projek:
./vendor/bin/codecept bootstrap
2. Tulis kes ujian
Kes ujian dalam Codeception dibahagikan kepada tahap yang berbeza, termasuk ujian unit, ujian integrasi dan ujian berfungsi. Dalam artikel ini, kami memberi tumpuan kepada ujian fungsian.
Buat suite ujian bernama FunctionalTests
menggunakan arahan berikut:
./vendor/bin/codecept generate:suite functional
Dalam direktori kes ujian, folder FunctionalTests
yang mengandungi kes ujian akan dijana secara automatik.
Seterusnya, kita perlu menentukan halaman web yang ingin kita uji. Gunakan arahan berikut untuk menjana fail kes ujian Sebagai contoh, halaman web yang ingin kami uji ialah http://example.com
:
./vendor/bin/codecept generate:cept functional ExampleTest
Dalam fail kes ujian yang dijana, kami boleh menggunakan kaedah $I->amOnPage
untuk mengakses. halaman web:
<?php $I = new FunctionalTester($scenario); $I->amOnPage('http://example.com'); $I->see('Hello, world!');
Dalam kes ujian ini, kami menggunakan kaedah $I->amOnPage
untuk membuka halaman web. Kemudian, kami menggunakan kaedah $I->see
untuk menyemak sama ada teks Hello, world!
wujud dalam halaman web.
Jika fungsi yang ingin kami uji memerlukan interaksi pengguna, kami perlu menggunakan kaedah yang disediakan oleh Codeception untuk mensimulasikan operasi pengguna. Sebagai contoh, kami ingin memasukkan teks ke dalam halaman web:
<?php $I = new FunctionalTester($scenario); $I->amOnPage('http://example.com'); $I->fillField('username', 'testuser'); $I->click('Submit'); $I->see('Welcome, testuser!');
Dalam kes ujian ini, kami menggunakan kaedah $I->fillField
untuk mengisi medan borang username
. Kemudian, kami menggunakan kaedah $I->click
untuk mensimulasikan pengguna mengklik butang Submit
. Akhir sekali, kami menggunakan kaedah $I->see
untuk menyemak sama ada teks Welcome, testuser!
wujud dalam halaman web.
Jika aplikasi kami perlu berinteraksi dengan pangkalan data, kami perlu menggunakan fungsi ujian pangkalan data yang disediakan oleh Codeception. Dalam kes ujian, kita boleh menggunakan kaedah $I->haveInDatabase
untuk menambah data pada pangkalan data dan kaedah $I->seeInDatabase
untuk menyemak sama ada data itu wujud.
Sebagai contoh, fungsi yang ingin kami uji ialah menambah rekod pengguna pada pangkalan data:
<?php $I = new FunctionalTester($scenario); $I->amOnPage('http://example.com/create-user.php'); $I->fillField('username', 'testuser'); $I->fillField('password', 'testpassword'); $I->click('Submit'); $I->seeInDatabase('users', ['username' => 'testuser']);
Dalam kes ujian ini, kami menggunakan kaedah $I->haveInDatabase
untuk menambah rekod pengguna ke jadual users
Rekod. Kami kemudian menggunakan kaedah $I->seeInDatabase
untuk menyemak sama ada terdapat rekod dengan medan username
testuser
.
3. Laksanakan kes ujian
Selepas menulis kes ujian, kita perlu melaksanakan kes ujian. Jalankan arahan berikut untuk menjalankan semua kes ujian:
./vendor/bin/codecept run
Jika kita hanya mahu menjalankan FunctionalTests
suite ujian, kita boleh menggunakan arahan berikut:
./vendor/bin/codecept run functional
4. Ringkasan
Gunakan Ujian Fungsi Codeception membantu kami memastikan kualiti aplikasi. Dalam artikel ini, kami belajar cara menulis kes ujian dan melaksanakannya. Codeception menyediakan API ringkas dan sintaks yang mudah difahami, yang boleh membantu kami menulis ujian fungsi web yang cekap dengan cepat.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan Codeception untuk ujian berfungsi dalam php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!