Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan Codeception dengan CakePHP?

Bagaimana untuk menggunakan Codeception dengan CakePHP?

WBOY
WBOYasal
2023-06-04 08:11:091061semak imbas

CakePHP ialah rangka kerja aplikasi web sumber terbuka berdasarkan PHP yang boleh membantu pembangun membina aplikasi web dengan cepat. Codeception ialah rangka kerja ujian yang berkuasa yang boleh membantu pembangun menjalankan ujian automatik. Artikel ini akan memperkenalkan cara menggunakan Codeception untuk ujian dalam CakePHP.

  1. Pasang Codeception

Mula-mula, anda perlu memasang Codeception. Ia boleh dipasang melalui Composer, jalankan arahan berikut:

composer require --dev codeception/codeception

Jika anda memerlukan modul lain, anda boleh memasangnya seperti berikut:

composer require --dev codeception/module-webdriver
composer require --dev codeception/module-db
composer require --dev codeception/module-asserts
  1. Initialize Codeception

Selepas memasang Codeception, anda perlu melaksanakan arahan berikut dalam direktori akar aplikasi CakePHP untuk memulakan Codeception:

vendor/bin/codecept init

Selepas melaksanakan arahan, akan ada satu siri soalan interaktif yang perlu menjawab. Sebagai contoh, anda perlu memilih jenis ujian, lokasi penyimpanan fail ujian, dsb.

  1. Ujian penulisan

Codeception menyediakan tahap ujian yang berbeza. Dalam CakePHP, anda boleh menggunakan ujian berfungsi untuk menguji sama ada aplikasi berfungsi seperti yang diharapkan. Ujian fungsional mensimulasikan interaksi pengguna dengan aplikasi, seperti mengisi borang, mengklik pautan, dsb. Berikut ialah sampel ujian:

<?php 
$I = new FunctionalTester($scenario);
$I->wantTo('ensure that login works');
$I->amOnPage('/');
$I->click('Login');
$I->seeCurrentUrlEquals('/users/login');
$I->fillField('username', 'testuser');
$I->fillField('password', 'testpass');
$I->click('Login');
$I->seeCurrentUrlEquals('/dashboard');
$I->see('Welcome, testuser');

Sampel ujian di atas cuba mensimulasikan log masuk pengguna dan mengesahkan sama ada ia berjaya. Simulasikan tingkah laku pengguna melalui $I->amOnPage() dan $I->click(), dan kemudian sahkan sama ada ia memenuhi jangkaan melalui $I->see() dan $I->seeCurrentUrlEquals().

  1. Jalankan ujian

Selepas menulis ujian, anda boleh menggunakan arahan berikut untuk menjalankan ujian:

vendor/bin/codecept run

Jika anda ingin menjalankan ujian ujian yang ditentukan, anda boleh menggunakan arahan berikut :

vendor/bin/codecept run functional MyFirstTestCest

Antaranya, MyFirstTestCest ialah nama fail ujian. Jika anda hanya mahu menjalankan kaedah ujian tertentu, anda boleh menggunakan arahan berikut:

vendor/bin/codecept run functional MyFirstTestCest:testLogin

di mana testLogin ialah nama kaedah ujian.

  1. Codeception dan PHPUnit

CakePHP menggunakan PHPUnit secara lalai untuk ujian unit. Codeception juga berdasarkan PHPUnit, jadi ia juga boleh dianggap sebagai kaedah ujian. Keindahan Codeception ialah ia memudahkan menulis, menjalankan dan mengurus ujian.

Jika anda perlu menggunakan PHPUnit dan Codeception dalam CakePHP pada masa yang sama, anda boleh menambah kod berikut pada fail phpunit.xml untuk menjalankan ujian Codeception:

<testsuites>
    <testsuite name="cake">
        <directory>./tests/TestCase/</directory>
        <directory>./vendor/codeception/codeception/tests/unit/</directory>
    </testsuite>
</testsuites>

Kod di atas akan juga digunakan semasa menjalankan ujian PHPUnit Termasuk menjalankan ujian Codeception.

Ringkasan

Artikel ini memperkenalkan cara menggunakan Codeception untuk ujian dalam CakePHP. Codeception menyediakan pelbagai fungsi ujian, seperti ujian berfungsi, ujian hujung ke hujung, ujian API, dll., yang boleh membantu kami menguji aplikasi secara lebih menyeluruh. Pada masa yang sama, Codeception adalah mudah untuk digunakan dan mudah untuk dimulakan, yang boleh meningkatkan kecekapan ujian.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Codeception dengan CakePHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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