炫意html5
最早CSS3和HTML5移动技术网站之一

yaf框架单元测试

代码目录结构:

项目目录
application     控制器和视图目录
configs         ini配置文件目录
library         Dao、Model、Service层目录
public          入口文件目录
tests           单元测试目录
api           测试用例目录
bootstrap.php  单元测试初始化文件
vendor          第三方库(composer)
composer.json   composer依赖文件
phpunit.xml     单元测试配置文件

在yaf中做单元测试,主要是测试library下面的库,包括Dao、Model、Service层的测试。

controller层一般通过API功能测试,这个不依赖yaf,所以这里重点讲解服务层的测试。

1 bootstrap.php文件

如下,我们通过这样的类似入口文件的代码,初始化yaf框架,实现对服务层的调用。

<?php
ini_set('error_reporting', E_ALL); // or error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
define("BASE_PATH", __DIR__ . "/../");
define("APP_PATH", BASE_PATH . "application/");
define("ENV", get_cfg_var('SERVER_ENV'));
include BASE_PATH . 'vendor/autoload.php';
/**
* Class TestBase
* 说明:这里我们用了autoload.php,所以YAF的php.ini需设置:yaf.use_spl_autoload=1,
* 否则会报错:Warning: Yaf_Loader::autoload(): Failed opening script ... No such file or directory
*/
static $application = null;
// 必须实例化Yaf_Application Final类;
// 载入Application必备的配置文件;
// Yaf_Application代表的是一个产品/项目,必须保证单例。
$application = Yaf_Registry::get('Application');
if (!$application) {
$application = new Yaf_Application(BASE_PATH . "configs/application.ini", ENV);
$application->bootstrap();
Yaf_Registry::set('Application', $application);
}

2 phpunit.xml文件

在phpunit.xml中,我们指定启动文件,配置测试目录和文件后缀:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit stderr="true" bootstrap="tests/bootstrap.php" backupGlobals="false">
<testsuites>
<testsuite name="API Test Suite">
<directory suffix=".php">./tests/api/</directory>
</testsuite>
</testsuites>
</phpunit>

这样我们在tests/下的测试用例都可以直接调用yaf的组件,以及所有的library下的类了。

3 开始测试

./vendor/phpunit/phpunit/phpunit

炫意HTML5 » yaf框架单元测试

Java基础教程Android基础教程