9 Rangka Kerja Ujian Automatik Terbaik Untuk PHP
Pernahkah anda menghabiskan masa berjam-jam untuk menyahpepijat kod PHP anda? Nah, bagi kebanyakan pengaturcara, ini mungkin bukan cabaran yang paling menarik, tetapi ada satu penyelesaian yang dapat membantu kami memendekkan tugas yang membosankan ini. Ujian automatik dengan ketara dapat meningkatkan aliran kerja pembangunan PHP oleh yang membolehkan ujian pra-bertulis memacu proses pembangunan.
Dalam catatan ini kita akan cuba memahami kenapa ujian automatik begitu keren, bagaimana ia berfungsi, dan apakah itu rangka kerja ujian yang terbaik anda boleh mulakan dengan.
Kenapa Ujian Penting
Novis pemaju PHP cenderung untuk tidak menulis ujian untuk kod mereka. Kebanyakan kita memulakan karier kami dengan menguji ciri-ciri dan fungsi baru yang kami baru tulis dalam tetingkap pelayar satu demi satu, dan apabila ada yang salah, kami tidak tahu apa yang perlu dilakukan.
Ujian penulisan untuk kod kami boleh menjimatkan masa debugging berharga dan jam sakit kepala. Apabila kod yang belum diuji masuk ke dalam pengeluaran, ulasan yang kami akan mungkin tidak akan begitu baik. Jadi apa yang boleh kita lakukan?
Mungkin idea terbaik adalah mewujudkan aliran kerja ujian yang produktif di mana kita perlu menulis kod ujian sendiri yang memeriksa jika kod permohonan kami berfungsi dengan betul.
Caranya ialah kod ujian perlu ditulis sebelum kod permohonan. Dengan cara ini kita dapat memastikan dari awal bahawa kod yang kita tulis berfungsi dengan baik. Kod ujian akan masuk ke fail berasingan. Sekiranya kita kemudian terperangkap dalam apa-apa kesilapan dalam aplikasi PHP kami, kami tidak perlu melakukan apa-apa lagi, hanya menjalankan ujian kami yang diharapkan akan memberi kita petunjuk yang betul tentang masalah.
Selain daripada menjimatkan masa dan menyediakan aplikasi kami dengan betul untuk pengeluaran, ujian mempunyai banyak kelebihan lain, seperti:
- kod yang lebih banyak dipelihara
- memudahkan refactoring
- kurang masalah keselamatan
- pangkalan kod yang kurang kembung (menyesuaikan kod permohonan ke kod ujian yang ditulis sebelum ini akan menyebabkan kita menghilangkan bahagian yang berlebihan)
- prestasi yang lebih baik
Apakah Ujian Automatik?
Sudah tentu, kita boleh menulis ujian kami secara manual, tetapi selepas beberapa ketika ia boleh menjadi membosankan dan memakan masa dengan banyak tugas yang berulang-ulang. Ujian manual boleh digantikan dengan ujian automatik di mana kita menggunakan perisian tertentu yang akan melakukan kerja yang membosankan untuk kita, dan kita boleh menghabiskan lebih banyak masa dengan mencipta logik kod ujian.
PHP adalah bernasib baik dalam bahasa pengaturcaraan yang sangat popular, jadi terdapat banyak kerangka ujian automatik yang dapat kita pilih.
Pembangunan Dipacu Ujian (TDD) vs. Pembangunan Berpandu-Perilaku (BDD)
Dua pendekatan utama yang menggunakan rangka kerja ujian automatik ialah Pembangunan Dipacu Ujian (TDD) dan Pembangunan Berpandu Perilaku (BDD). Dalam kedua-duanya, proses pembangunan didorong oleh ujian, yang bermaksud bahawa ujian ditulis sebelum kod permohonan.
Perbezaan utama antara ujian yang didorong oleh ujian dan ujian tingkah laku adalah dalam sintaks kod ujian: TDD menggunakan kod PHP yang betul dalam fail ujian, sementara BDD menggunakan ayat yang boleh dibaca manusia yang menggambarkan kelakuan setiap ciri dan boleh difahami oleh pihak berkepentingan bukan teknikal juga.
Ujian TDD kelihatan seperti ini dalam editor kod, ia hanya kod PHP berorientasikan objek biasa:
Ujian BDD adalah serupa dengan ini, bukan pengaturcara juga boleh memahaminya:
10 PHP Rangka Kerja Ujian Automatik
Dengan itu, mari kita lihat 10 kerangka ujian automatik yang kuat Untuk PHP yang boleh anda gunakan.
1. PHPUnit
PHPUnit adalah rangka kerja ujian yang paling terkenal untuk menulis Unit Ujian untuk aplikasi PHP. Ujian unit mengambil bahagian kecil kod yang dipanggil unit dan menguji mereka satu persatu. Dengan bantuan PHPUnit kita boleh menjalankan pembangunan berasaskan ujian.
Ia boleh digunakan melalui baris perintah, dan ia menyediakan kita dengan kelas TestCase yang berguna bahawa kita boleh melanjutkan mengikut keperluan kita. PHPUnit juga membolehkan pemaju untuk menggunakannya kaedah penegasan yang telah ditulis terlebih dahulu untuk menegaskan bahawa apl itu berkelakuan dengan cara tertentu.
2. Codeception
Codeception tidak hanya membolehkan kita menulis Ujian Unit, tetapi juga Ujian Fungsional dan Penerimaan. Kedua-dua ini menguji aplikasi PHP secara keseluruhan dengan semua ciri yang diikat bersama, bukan sebagai unit. Codeception membolehkan kita untuk membolehkan dan mengkonfigurasi modul yang berbeza mengikut keperluan pembangunan kita.
Ia disepadukan dengan banyak rangka pembangunan PHP seperti Symfony2, Laravel4, Yii, Phalcon, dan Rangka Kerja Zend. Ini bermakna kita boleh menggunakan rangka kerja ujian automasi PHP dan rangka kerja pembangunan PHP bersama-sama untuk mewujudkan aliran kerja pembangunan yang lebih cekap.
3. Behat
Behat adalah rangka kerja ujian PHP yang didorong oleh kelakuan yang popular. Ujian yang boleh kita tulis dengan Behat agak kelihatan seperti cerita daripada kod. Behat menggunakan subtipe StoryBDD pembangunan berasaskan tingkah laku (subtype lain ialah SpecBDD).
Rangka kerja ini diilhamkan oleh projek Cucumber yang merupakan rangka kerja ujian untuk bahasa pengaturcaraan Ruby.
4. PHPSpec
PHPSpec juga mengikuti pendekatan ujian yang didorong oleh tingkah laku, tetapi subtype lain yang dipanggil SpecBDD. Dengan PHPSpec kita perlu tulis spesifikasi terlebih dahulu yang menerangkan bagaimana kod aplikasi akan berkelakuan. Ia juga diilhamkan oleh rangka kerja ujian Ruby yang dipanggil RSpec.
5. Penjaga cerita
Storyplayer adalah rangka kerja ujian penuh yang membolehkannya tulis ujian hujung ke hujung untuk keseluruhan platform. Pembuat cerita mempunyai sokongan untuk mewujudkan dan memusnahkan persekitaran ujian apabila diminta. Ia mengikuti pendekatan ujian TDD, dan membolehkan kami menulis ujian fungsional yang boleh menyemak aplikasi secara keseluruhan.
6. Peridot
Peridot adalah rangka kerja ujian ringan dan extensible untuk PHP. Ia mempunyai satu seni bina yang dipimpin acara yang membolehkan penguji mudah menyesuaikan rangka kerja melalui plugin dan pemberita.
Peridot menggunakan huraikan-itu sintaks untuk menubuhkan bahasa ujian yang jelas dan mudah dibaca yang jelas menerangkan bagaimana kod aplikasi kita harus berperilaku.
7. Atoum
Atoum adalah rangka kerja ujian PHP yang intuitif dan moden yang membolehkan kami menjalankan ujian unit. Ia memudahkan pembangunan ujian, dan kerana ia merupakan kerangka kerja muda ia menggunakan beberapa keupayaan baru yang diperkenalkan dalam PHP 5.3 (ia bolehTidak boleh digunakan dengan versi PHP lama) untuk memberi kita proses ujian cepat dan mudah difahami.
Atoum memastikan a tahap keselamatan yang tinggi semasa pelaksanaan ujian, kerana ia mengasingkan setiap kaedah ujian dalam proses PHP sendiri.
8. Kahlan
Kahlan adalah rangka kerja ujian BDD yang mempunyai ciri-ciri yang membolehkannya menulis Ujian Unit menggunakan huraikan-itu sintaks. Ia merangkumi prinsip reka bentuk KISS (Keep It Simple, Stupid). Kahlan memerlukan sekurang-kurangnya PHP 5.5.
Ia mempunyai asas kod kecil, dikatakan kira-kira 10 kali lebih kecil daripada PHPUnit, dan ia mempunyai banyak ciri yang menyediakan kita dengan alur kerja pengujian yang boleh diperluaskan dan disesuaikan.
9. Selenium
Selenium adalah kerangka ujian yang canggih yang mengotomatikkan penyemak imbas. Ini bermakna mungkin untuk menulis Ujian Penerimaan Pengguna itu memeriksa keseluruhan aplikasi secara keseluruhan.
Selenium adalah alat yang kuat yang mempunyai API WebDriver sendiri yang boleh memacu penyemak imbas secara asli sebagai walaupun pengguna asli akan menggunakannya sama ada secara tempatan atau pada mesin jauh. Selenium adalah alat yang sangat baik untuk menguji aplikasi web yang lebih matang.
Pemikiran Akhir
Rangka kerja ujian automatik memberi kuasa kepada kami untuk menulis kod PHP yang berkualiti tinggi, dan kerana populariti bahasa kami mempunyai banyak pilihan, jadi kami boleh memilih yang memenuhi keperluan pembangunan kami yang terbaik.
Ada sesuatu yang penting walaupun kita perlu sentiasa ingat. Ujian automatik mungkin kuat, tetapi boleh tidak pernah ujian beta pengganti - ujian dilakukan oleh manusia sebenar yang akan menjadi pengguna masa depan permohonan.