phpunit api PHPUnit_Framework_TestSuite.php

来源:互联网 发布:南京行知实验中学 编辑:程序博客网 时间:2024/04/30 14:12

1 对于继承自PHPUnit_Framework_TestSuite的类Phpunit会自动执行suite()方法。

PHPUnit_Framework_TestSuite还有两个模板方法setUp(), tearDown();会在执行整个测试套件之前和之后运行。
顺序suite()-->setUp()-->添加的测试集-->tearDown(),setup 可以初始化数据库连接,session值等等,tearDown 释放资源


<?php
//demo.php业务类定义    
class Demo{  
        public function add($a, $b){  
                return $a + $b;   
        }      

?>


<?
//TestCase.php 测试类
require("demo.php");  
class DemoTest extends PHPUnit_Framework_TestCase{  
        //共享资源
   protected $_obj;
        // SetUp方法是在每个测试用例运行前进行一些初始化的工作,比如创建业务对象,让其他测试方法也可以使用业务对象,或数据库连接对象
        public function setUp(){  
            $this->_obj = new Demo();  
        }
        //tearDown则在每个测试用例运行后进行一些比如资源的释放等工作的工作
        public function tearDown(){  
unset($this->_obj);
        }       
  //testAdd 方法名以test* 开头
        public function testAdd(){  
$res = $this->_obj->add(1, 2);
//phpunit的断言assertEquals判断输出是否和预期的相等,phpunit 还提供很多断言方法
$this->assertEquals(3, $res);  
        }  
//testAdd2 方法注解为@test
/** 
* @test 
*/  
        public function testAdd2(){  
$res = $this->_obj->add(1, 2);
/*phpunit的断言assertEquals判断输出是否和预期的相等,phpunit 还提供很多断言方法
AssertTrue/AssertFalse    断言是否为真值还是假
AssertEquals    判断输出是否和预期的相等
AssertGreaterThan    断言结果是否大于某个值,同样的也有LessThan(小于),GreaterThanOrEqual(大于等于),
LessThanOrEqual(小于等于).
AssertContains    判断输入是否包含指定的值
AssertType    判断是否属于指定类型
AssertNull    判断是否为空值
AssertFileExists    判断文件是否存在
AssertRegExp    根据正则表达式判断
*/
$this->assertEquals(3, $res);  
        }     
}  
?>


<?php 
// 测试套件TestSuite.php
require_once 'PHPUnit/Autoload.php';  
class MyTestSuite extends PHPUnit_Framework_TestSuite {  
         //共享资源
   protected $_db;
public function __construct(){  
                $this->addTestFile('TestCase.php');  
        }
// SetUp方法是在每个测试用例运行前进行一些初始化的工作,比如创建业务对象,让其他测试方法也可以使用业务对象,或数据库连接对象
        public function setUp(){  
            $this->_db = new PDO();  
        }  
  //tearDown则在每个测试用例运行后进行一些比如资源的释放等工作的工作
        public function tearDown(){  
unset($this->_db);
        } 
       //注意此处设置为static  
        public static function suite() {  
       //最后一定得返回PHPUnit_Framework_TestSuite对像  
                return new self();  
        }  

?>
//执行命令 
phpunit TestSuite.php



<?php  
// 测试套件TestSuite.php
require_once 'PHPUnit/Autoload.php';  
  
$suite = new PHPUnit_Framework_TestSuite();  
$suite->addTestFile('TestCase.php');  
PHPUnit_TextUI_TestRunner::run($suite);  
?>
//执行命令
phpunit TestSuite.php


<?php 
// 测试套件TestSuite.php 
require_once 'PHPUnit/Autoload.php'; 
//加载测试类文件 
require_once 'TestCase.php'; 
require_once 'TestCase5555.php'; 
class MyTestSuite{  
    public static function main() { 
PHPUnit_TextUI_TestRunner::run(self::suite()); 

public static function suite() { 
//TestCase,TestCase555 都是类名
$suite = new PHPUnit_Framework_TestSuite("TestCase"); 
$suite->addTestSuite("TestCase555");
return $suite; 
}  

?>
//执行命令
phpuint TestSuite.php