Symfony - Kiểm tra đơn vị
Unit test là điều cần thiết để phát triển liên tục trong các dự án lớn. Các bài kiểm tra đơn vị sẽ tự động kiểm tra các thành phần của ứng dụng và cảnh báo cho bạn khi có điều gì đó không hoạt động. Kiểm thử đơn vị có thể được thực hiện thủ công nhưng thường được tự động hóa.
PHPUnit
Khung công tác Symfony tích hợp với khung thử nghiệm đơn vị PHPUnit. Để viết một bài kiểm tra đơn vị cho khung công tác Symfony, chúng ta cần thiết lập PHPUnit. Nếu PHPUnit chưa được cài đặt, hãy tải xuống và cài đặt nó. Nếu nó được cài đặt đúng cách, thì bạn sẽ thấy phản hồi sau.
phpunit
PHPUnit 5.1.3 by Sebastian Bergmann and contributors
Bài kiểm tra đơn vị
Bài kiểm tra đơn vị là bài kiểm tra đối với một lớp PHP duy nhất, còn được gọi là một đơn vị.
Tạo một sinh viên lớp trong thư mục Libs / của AppBundle. Nó được đặt tại“src/AppBundle/Libs/Student.php”.
Student.php
namespace AppBundle\Libs;
class Student {
public function show($name) {
return $name. “ , Student name is tested!”;
}
}
Bây giờ, hãy tạo một tệp StudentTest trong thư mục “tests / AppBundle / Libs”.
StudentTest.php
namespace Tests\AppBundle\Libs;
use AppBundle\Libs\Student;
class StudentTest extends \PHPUnit_Framework_TestCase {
public function testShow() {
$stud = new Student();
$assign = $stud->show(‘stud1’);
$check = “stud1 , Student name is tested!”;
$this->assertEquals($check, $assign);
}
}
Chạy thử nghiệm
Để chạy thử nghiệm trong thư mục, hãy sử dụng lệnh sau.
$ phpunit
Sau khi thực hiện lệnh trên, bạn sẽ thấy phản hồi sau.
PHPUnit 5.1.3 by Sebastian Bergmann and contributors.
Usage: phpunit [options] UnitTest [UnitTest.php]
phpunit [options] <directory>
Code Coverage Options:
--coverage-clover <file> Generate code coverage report in Clover XML format.
--coverage-crap4j <file> Generate code coverage report in Crap4J XML format.
--coverage-html <dir> Generate code coverage report in HTML format.
Bây giờ, hãy chạy các bài kiểm tra trong thư mục Libs như sau.
$ phpunit tests/AppBundle/Libs
Kết quả
Time: 26 ms, Memory: 4.00Mb
OK (1 test, 1 assertion)