ให้เรตสมาชิก: 1 / 5

ดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

Yii Framework Unit Testing

Unit testing ของ Yii Framework ถูกเขียนอยู่บน PHPUnit, สรุปหลักการพื้นฐานของการเขียน unit Testing ใน Yii มีดังนี้
- ชื่อ Class เขียนอยู่ในรูปแบบ
XyzTest โดยต้อง extends จาก CTestCase หรือ CDbTestCase เมื่อ Xyz คือชื่อ class สำหรับ test เช่นถ้าเราต้องการเขียน test Post class ชื่อที่ตั้งคือ PostTest ส่วนการ extends นั้น extends CTestCase สำหรับ test ทั่วๆไป ถ้าจะ test active record ควรใช้ CDbTestCase แทน CTestCase เพราะ class PHPUnit_Framework_TestCase เป็น class แม่ของทั้งสอง class นั้นอยู่แล้ว คุณสมบัติต่างๆ ก็จะถูกสือถอดจาก class นั้น
- Save ไฟล์ด้วยชื่อตามรูปแบบ XyzTest.php ไว้ที่ protected/tests/unit/
- ชื่อ method ภายใน class ที่ต้องการ test เขียนตามรูปแบบ testAbc เมื่อ Abc คือชื่อ method
- วิธีการ test method มักจะใช้วิธีใส่ลำดับคำสั่งยืนยัน (assertion statements) เช่น assertTrue, assertEquals ซึ่งทำหน้าที่เป็น checkpoints ในการตรวจสอบความถูกต้องของ Class ของเรา

ตัวอย่างโค้ดการเขียน CommentTest
<?php

class CommentTest extends CDbTestCase
{
    /**
     * We use both 'Post' and 'Comment' fixtures.
     * @see CWebTestCase::fixtures
     */
    public $fixtures=array(
        'posts'=>'Post',
        'comments'=>'Comment',
    );

    public function testFindRecentComments()
    {
        $this->assertEquals(array(), Comment::model()->findRecentComments());

        $comment=new Comment;
        $comment->setAttributes(array(
            'content'=>'comment 1',
            'status'=>Comment::STATUS_APPROVED,
            'create_time'=>time(),
            'author'=>'me',
            'email'=>'me@example.com',
            'post_id'=>$this->posts['sample1']['id'],
        ),false);
        $this->assertTrue($comment->save(false));
        $this->assertEquals(1,$comment->id);

        $comments=Comment::model()->findRecentComments();
        $this->assertEquals(1,count($comments));
        $this->assertEquals($comment->attributes, $comments[0]->attributes);
    }

    public function testApprove()
    {
        $comment=new Comment;
        $comment->setAttributes(array(
            'content'=>'comment 1',
            'status'=>Comment::STATUS_PENDING,
            'create_time'=>time(),
            'author'=>'me',
            'email'=>'me@example.com',
            'post_id'=>$this->posts['sample1']['id'],
        ),false);
        $this->assertTrue($comment->save(false));

        $comment=Comment::model()->findByPk($comment->id);
        $this->assertTrue($comment instanceof Comment);
        $this->assertEquals(Comment::STATUS_PENDING,$comment->status);

        $comment->approve();
        $this->assertEquals(Comment::STATUS_APPROVED,$comment->status);
        $comment=Comment::model()->findByPk($comment->id);
        $this->assertEquals(Comment::STATUS_APPROVED,$comment->status);
    }
}
ทดลองรัน

>phpunit functional/CommentTest.php

ทดสอบรันในรูปแบบอื่นๆอ่านที่บทความ

เตรียมเครื่องทำ สำหรับ PHPUnit และ Selenium
ก่อนรัน ถ้ายังไม่ได้ satrt selenium ให้ start มันก่อนด้วยคำสั่ง
D:\xampp\htdocs\Yii_Framework>java -jar selenium-server.jar

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
การตั้งค่า เปิด - ปิด ส่วนการลงทะเบียนสมัครสมาชิก ใน เว็บบอร์ด phpbb
โดย Ittichai_chupol ส 19 ม.ค. 2019 11:22 am บอร์ด phpBB user Guide Knowledge
0
8
ส 19 ม.ค. 2019 11:22 am โดย Ittichai_chupol
รวบรวมวิธีการใช้งาน Google Sheet
โดย Chidchanok ส 19 ม.ค. 2019 11:11 am บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
4
ส 19 ม.ค. 2019 11:11 am โดย Chidchanok
สอบถามวิธีการดึง File ที่ลบใน Google doc กลับ
โดย ณัฐกฤตา บุญญะฤทธิ์ ส 19 ม.ค. 2019 10:19 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
15
ส 19 ม.ค. 2019 10:48 am โดย Ittichai_chupol
การจัดทำใบสั่งซื้อในโปรแกรม Open ERP
โดย Chidchanok ศ 18 ม.ค. 2019 6:21 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
13
ศ 18 ม.ค. 2019 6:21 pm โดย Chidchanok
Q- OpenERP เมนู MRP เมนูย่อย Product คีย์ข้อมูลแล้วกดบันทึกไม่ได้
โดย ณัฐกฤตา บุญญะฤทธิ์ ศ 18 ม.ค. 2019 5:32 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
16
ศ 18 ม.ค. 2019 5:32 pm โดย ณัฐกฤตา บุญญะฤทธิ์
การจัดทำใบเสนอราคาฝั่งซื้อในโปรแกรม OpenERP
โดย Chidchanok ศ 18 ม.ค. 2019 5:24 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
12
ศ 18 ม.ค. 2019 5:24 pm โดย Chidchanok
การส่งสินค้าในโปรแกรม Open ERP
โดย Chidchanok ศ 18 ม.ค. 2019 4:49 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
10
ศ 18 ม.ค. 2019 4:49 pm โดย Chidchanok
อยากทราบวิธีการแบ่งข้อมูล ออกเป็นชุดๆ ใน phpbb
โดย Ittichai_chupol ศ 18 ม.ค. 2019 3:40 pm บอร์ด Programming - PHP
0
10
ศ 18 ม.ค. 2019 3:40 pm โดย Ittichai_chupol
การเพิ่มข้อมูลผู้จำหน่ายใน โปรแกรม Open ERP
โดย Chidchanok ศ 18 ม.ค. 2019 3:33 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
15
ศ 18 ม.ค. 2019 3:33 pm โดย Chidchanok
Q-กดปรื้นส์ใบเสนอราคาแต่ไม่สามารถดูได้
โดย Chidchanok ศ 18 ม.ค. 2019 2:57 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
4
ศ 18 ม.ค. 2019 2:57 pm โดย Chidchanok
การจัดทำใบวางบิล ในโปรแกรม Open ERP
โดย Chidchanok ศ 18 ม.ค. 2019 2:48 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
10
ศ 18 ม.ค. 2019 2:48 pm โดย Chidchanok
สอบถามหน่อยค่ะพอดีตั้งค่าให้เมลแจ้งเตือนในหน้า Desktop แล้วและเปิดการแจ้งเตือนของเบราเซอร์แล้วแต่ยังไม่แจ้งเตือนค่ะ
โดย Parichat ศ 18 ม.ค. 2019 2:00 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
4
32
ศ 18 ม.ค. 2019 2:09 pm โดย Parichat
การจัดทำใบแจ้งหนี้ ใบโปรแกรม Open ERP
โดย Chidchanok ศ 18 ม.ค. 2019 1:55 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
7
ศ 18 ม.ค. 2019 1:55 pm โดย Chidchanok
คำสั่ง ปิดเครื่อง CentOS แบบต่างๆ ตั้งเวลาปิดเครื่อง
โดย mindphp ศ 18 ม.ค. 2019 12:24 pm บอร์ด Linux - Web Server
0
3
ศ 18 ม.ค. 2019 12:24 pm โดย mindphp
การจัดทำใบสั่งขาย ในโปรแกรม OpenERP
โดย Chidchanok ศ 18 ม.ค. 2019 11:55 am บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
15
ศ 18 ม.ค. 2019 11:55 am โดย Chidchanok
ชีวิตการทำงาน
โดย จันนุสรณ์ ดีแก่ ศ 18 ม.ค. 2019 11:25 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
23
ศ 18 ม.ค. 2019 11:25 am โดย จันนุสรณ์ ดีแก่
ขั้นตอนการสร้างเว็บบอร์ดย่อยภายใต้หมวดหมู่ สำหรับแอดมิน หรือผู้ดูแลระบบ
โดย จันนุสรณ์ ดีแก่ ศ 18 ม.ค. 2019 11:03 am บอร์ด phpBB user Guide Knowledge
0
40
ศ 18 ม.ค. 2019 11:03 am โดย จันนุสรณ์ ดีแก่
[Extension phpBB3.1.1] FlatUI Smilies Extention ไอคอนแสดงอารมณ์เพิ่มสีสันแก่เว็บบอร์ด
โดย จันนุสรณ์ ดีแก่ ศ 18 ม.ค. 2019 10:23 am บอร์ด phpBB 3.1 Extension Review
0
33
ศ 18 ม.ค. 2019 10:23 am โดย จันนุสรณ์ ดีแก่
[Extension phpBB3.1.1] SE Square Extension ไตล์โทนสีน้ำเงินอ่อนและฟ้าอ่อน
โดย จันนุสรณ์ ดีแก่ ศ 18 ม.ค. 2019 9:42 am บอร์ด phpBB 3.1 Extension Review
0
35
ศ 18 ม.ค. 2019 9:42 am โดย จันนุสรณ์ ดีแก่
สอบถามวิธีการเปิดสิทธ์ใช้งานใน google docs ค่ะ
โดย ณัฐกฤตา บุญญะฤทธิ์ ศ 18 ม.ค. 2019 9:34 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
46
ศ 18 ม.ค. 2019 10:17 am โดย ณัฐกฤตา บุญญะฤทธิ์