Symfony - การทดสอบหน่วย

การทดสอบหน่วยเป็นสิ่งจำเป็นสำหรับการพัฒนาอย่างต่อเนื่องในโครงการขนาดใหญ่ การทดสอบหน่วยจะทดสอบส่วนประกอบของแอปพลิเคชันของคุณโดยอัตโนมัติและแจ้งเตือนคุณเมื่อมีบางอย่างไม่ทำงาน การทดสอบหน่วยสามารถทำได้ด้วยตนเอง แต่มักจะเป็นแบบอัตโนมัติ

PHPUnit

เฟรมเวิร์ก Symfony ทำงานร่วมกับเฟรมเวิร์กการทดสอบหน่วย PHPUnit ในการเขียนการทดสอบหน่วยสำหรับเฟรมเวิร์ก Symfony เราจำเป็นต้องตั้งค่า PHPUnit หากไม่ได้ติดตั้ง PHPUnit ให้ดาวน์โหลดและติดตั้ง หากติดตั้งอย่างถูกต้องคุณจะเห็นคำตอบต่อไปนี้

phpunit 
PHPUnit 5.1.3 by Sebastian Bergmann and contributors

แบบทดสอบหน่วย

การทดสอบหน่วยเป็นการทดสอบกับคลาส PHP เดียวหรือเรียกว่าเป็นหน่วย

สร้างคลาส Student ใน Libs / directory ของ AppBundle ตั้งอยู่ที่“src/AppBundle/Libs/Student.php”.

Student.php

namespace AppBundle\Libs; 

class Student { 
   public function show($name) { 
      return $name. “ , Student name is tested!”; 
   } 
}

ตอนนี้สร้างไฟล์ StudentTest ในไดเร็กทอรี“ testing / 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); 
   } 
}

เรียกใช้การทดสอบ

ในการรันการทดสอบในไดเร็กทอรีให้ใช้คำสั่งต่อไปนี้

$ phpunit

หลังจากดำเนินการคำสั่งด้านบนคุณจะเห็นคำตอบต่อไปนี้

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.

ตอนนี้เรียกใช้การทดสอบในไดเรกทอรี Libs ดังต่อไปนี้

$ phpunit tests/AppBundle/Libs

ผลลัพธ์

Time: 26 ms, Memory: 4.00Mb 
OK (1 test, 1 assertion)