07/09/2018, 10:45

Tại Sao Nên Chọn Codeception Để Test Ứng Dụng PHP

Codeception là một testing framework được xây dựng trên nền tảng PHPUnit với thiết kế tập trung vào sự đơn giản và hiệu quả trong quá trình test ứng dụng. Codeception được bắt đầu phát triển dưới dạng một plugin của Symfony 1 để đơn giản hoá việc test các function (hay còn gọi là functional test) ...

Codeception là một testing framework được xây dựng trên nền tảng PHPUnit với thiết kế tập trung vào sự đơn giản và hiệu quả trong quá trình test ứng dụng. Codeception được bắt đầu phát triển dưới dạng một plugin của Symfony 1 để đơn giản hoá việc test các function (hay còn gọi là functional test) trong framework này. Tuy nhiên sau đó đi cùng với sự phát triển mạnh mẽ của Synfony thì Codeceptioin đã phát triển thành một dự án độc lập để có thể chạy với tất cả các PHP framework cũng như các PHP engine khác nhau.

Trong bài viết này chúng ta sẽ lần lượt đi qua một số điểm nổi bật bạn nên sử dụng Codeception khi test ứng dụng.

Hỗ Trợ Ngôn Ngữ PHP

Như đã nói ở trên Codeception được phát triển để test các tính năng trong Synfony framework và framework này được phát triển dựa trên ngôn ngữ lập trình PHP. Mặc dù chúng ta có thể sử dụng Codeception với các ngôn ngữ khác tuy nhiên Codeception vẫn được sử dụng chủ yếu với các ứng dụng PHP.

Điều này đồng nghĩa với việc sử dụng IDE hỗ trợ các tính năng như code completion, syntax highlighting... sẽ giúp bạn viết test nhanh hơn và tránh được các lỗi cú pháp.

Xây Dựng Trên Nền Tảng PHPUnit

Codeception được xây dựng dựa trên PHPUnit nên chúng ta có thể sử dụng mọi tính năng có trong PHPUnit:

<?php
$I = new TestGuy($scenario);
$I->wantTo('launch missiles from my website');
$I->amOnPage('/launch');
$I->click('Launch Missiles!')
$I->see('Missiles launched');
?>

Cài Đặt Đơn Giản Và Dễ Sử Sử Dụng

Sự đơn giản hoá trong cách viết test cũng như trong việc cài đặt là một trong những ưu điểm nổi bật của Codeception. Để cài đặt Codeception bạn chỉ cần tải framework này về là có thể bắt đầu sử dụng được:

wget http://codeception.com/codecept.phar

Trường hợp bạn sử dụng composer và muốn dùng Codeception như một package của dự án:

composer require "codeception/codeception"  // ./vendor/bin/codecept

Ngoài ra, Codeception được thiết kế dựa trên nguyên lý KISS (keep it simple stupid) nên bất cứ một lập trình viên PHP nào kể cả người mới bắt đầu cũng có thể dễ dang sử dụng framework này để viết test:

Cú pháp PHP khi viết test sử dụng Codeception

Hỗ Trợ Nhiều Framework và Engine Khác Nhau

Giả sư ứng dụng bạn viết sử dụng Synfony framwork và bây giờ bạn muốn chuyển sang Zend hoặc Yii. Hay như khi bạn muốn sử dụng Selenium để test ứng dụng trên trình duyệt. Tất cả những thay đổi này đều không ảnh hưởng tới các test case bạn đã viết bởi vì Codeception sử dụng một cú pháp chung cho tất cả các Framework và Engine khác nhau.

Hỗ Trợ Chạy Các Test Phức Tạp

Codeception hỗ trợ viết và chạy các test phức tạp đối với ngay cả các trường hợp test giao diện người dùng. Sử dụng Codeception, chúng ta có thể chạy test để lựa chọn và kiểm tra phần tử HTML của trang, test dữ liệu trả về dạng JSON, test các web server (REST hoặc SOAP)... Tất cả các công việc phức tạp này đều được Codeceptoin hỗ trợ để hoàn thành với số lượng dòng code tối thiểu:

<?php
$I->click('New User');
$I->click('#user_1 .user_new');
$I->click('//*[@id = 'user_1']/descendant::a');
$I->see('Title', Locator::combine('h1','h2','h3'));
$I->see('Log In', Locator::href('/login.php'));
?>

Ở trên là một vài lý do để bạn thảm khảo trước khi quyết định sử dụng Framework này để test ứng dụng.

0