PHPUnit สามารถดาวน์โหลดได้ที่ https://phpunit.de/
Netbeans สามารถดาวน์โหลดเวอร์ชั่นล่าสุดได้ที่ https://netbeans.org/
PHPUnit ถ้าใครใช้ตัวจำลองเซิฟเวอร์ด้วย XAMPP จะมีตัว phpunit กับ phpunit.bat มาให้อยู่แล้วในโฟลเดอร์ php แต่ถ้าใครยังไม่มีก็ดาวน์โหลดเลยครับ
ส่วน Netbeans ทำความรู้จักได้ที่ Netbeans คืออะไร การติดตั้ง Netbeans
มาเข้าเรื่องกันดีกว่า การทำ Unit Testing ด้วย PHPUnit กับ Netbeans 8.0
เริ่มต้นเปิด Netbeans ขึ้นมาแล้วคลิกที่ Tools --> Options ต่อมาคลิก PHP เลือกแท็บ Frameworks & Tools แล้วคลิกเลือก PHPUnit ตามภาพ คลิก Browse เพื่อเลือกไฟล์ phpunit กับ phpunit-skelgen สามารถเลือกไฟล์ .bat ได้
phpunit สำหรับทดสอบ
phpunit-skelgen สำหรับ generate โค้ดทดสอบ ตัวอย่างการใช้งาน สร้าง Class และ Function มาตามภาพ ตามภาพจะสังเกตเห็น Comment และ คำว่า @assert ขออธิบายว่า ส่วนนี้จะใช้กับ phpunit-skelgen เพื่อ generate โค้ดทดสอบ ตามเงื่อนไขที่เรากำหนด ข้อมูลเพิ่มเติมของ Skeleton Generator
โค้ด: เลือกทั้งหมด
class Calculator
{
/**
* @assert (0, 0) == 0
* @assert (0, 1) == 1
* @assert (1, 0) == 1
* @assert (1, 1) == 2
* @assert (1, 2) == 4
*/
public function add($a, $b)
{
return $a + $b;
}
}
โค้ด: เลือกทั้งหมด
D:\xampp\php\phpunit-skelgen.bat generate-test "Calculator" "D:\xampp\htdocs\phpunit\calculator.php" "CalculatorTest" "D:\xampp\htdocs\phpunit\tests\calculatorTest.php"
โค้ด: เลือกทั้งหมด
<?php
/**
* Generated by PHPUnit_SkeletonGenerator on 2014-11-28 at 09:42:54.
*/
class CalculatorTest extends PHPUnit_Framework_TestCase
{
/**
* @var Calculator
*/
protected $object;
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp()
{
require_once '../calculator.php';
$this->object = new Calculator;
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
/**
* Generated from @assert (0, 0) == 0.
*
* @covers Calculator::add
*/
public function testAdd()
{
$this->assertEquals(
0
,
$this->object->add(0, 0)
);
}
/**
* Generated from @assert (0, 1) == 1.
*
* @covers Calculator::add
*/
public function testAdd2()
{
$this->assertEquals(
1
,
$this->object->add(0, 1)
);
}
/**
* Generated from @assert (1, 0) == 1.
*
* @covers Calculator::add
*/
public function testAdd3()
{
$this->assertEquals(
1
,
$this->object->add(1, 0)
);
}
/**
* Generated from @assert (1, 1) == 2.
*
* @covers Calculator::add
*/
public function testAdd4()
{
$this->assertEquals(
2
,
$this->object->add(1, 1)
);
}
/**
* Generated from @assert (1, 2) == 4.
*
* @covers Calculator::add
*/
public function testAdd5()
{
$this->assertEquals(
4
,
$this->object->add(1, 2)
);
}
}