在PHP中使用SimpleTest进行单元测试

发表于:2009-6-02 12:05

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

  SimpleTest是一个使用十分简单的单元测试工具。

  一下内容是我自己设计的利用SimpleTest对一个项目进行单元测试的代码

  一、文件结构

  一个项目有多个文件夹,文件夹中还包含文件夹。我们要进行测试的代码即包含在这些文件夹中。要进行单元测试的情况,我认为有以下三种:

  ●        程序员进行某个函数、方法等的开发的时候,在开发完成时甚至开发过程中,边调试边进行测试。测试案例可能在进行开发的同时撰写,或者在项目的详细设计阶段即已经写好;

  ●        对一个模块(包含多个功能点)中的所有功能点进行一些集中的测试以检查是不是每一个功能点都能通过测试;

  ●        对于整个项目的统一单元测试。通常与每日构造结合。

  针对以上三种情况,我设计的测试代码中包含以下文件夹和文件:

  1)项目文件夹的根目录中,放置一个unit_test文件夹,其中包含setup.inc.php和index.php

setup.inc.php

测试系统的初始化文件,每一个直接执行的测试程序都要包含它

index.php

进行系统整体测试的程序

  2) 每一个需要进行单元测试的子文件夹中,建立一个unit_test文件夹,其中包含一个index.php和若干与单元测试功能点所在的文件同名的文件。例如对于以下一个fruits模块(位于项目的fruits文件夹中),其结构如下:

文件夹结构

文件描述

fruits

fruits模块的文件夹

CFruits.class.php

水果的基类

CApple.class.php

苹果类

CBanana.class.php

香蕉类

unit_test

单元测试文件夹

index.php

对fruits模块集中测试的程序

CFruits.class.php

对fruits模块中的CFruits.class.php进行单元测试的代码

CApple.class.php

对fruits模块中的CApple.class.php进行单元测试的代码

CBanana.class.php

对fruits模块中的CBanana.class.php进行单元测试的代码

  二、实现方法

  通过上文,可以看出本设计中包含了三种测试和四种文件,四种文件分别为:

  ●        单元测试初始化文件(每个项目一个)。

  ●        单元测试文件(每个代码文件一个);

  ●        模块集中测试文件(项目中每个模块一个);

  ●        项目集中测试文件(一个项目一个);

  1、单元测试初始化文件

<?php
if (!defined('SIMPLETEST_SETUP'))
{
    /* the following four constant defines the run types of TEST */
     /** don't know what to run */
    define('SIMPLETEST_RUN_UNKNOWN',    0);
    /** run the current unit of test */
    define('SIMPLETEST_RUN_UNIT',            1);
    /** run the group of test units */
    define('SIMPLETEST_RUN_GROUP',        2);
    /** run all tests */
    define('SIMPLETEST_RUN_GLOBAL',        3);
    $simletest_run = SIMPLETEST_RUN_UNKNOWN;
    /* Install path SimpleTest */
    define('SIMPLETEST_DIR', 'd:/web_sites/simpletest');
    /* 项目根文件夹 */
    define('SYS_ROOT', dirname(__FILE__) . '/..');
    define('SIMPLETEST_SETUP', true);
     require SIMPLETEST_DIR . '/unit_tester.php';
     require SIMPLETEST_DIR . '/reporter.php';
}
?>

  其中声明了四个常量以表示当前运行的测试为哪一种测试(单元/模块/项目/未知);定义了SimpleTest所在的文件夹;定义了当前进行单元测试的项目所在的文件夹;包含了基本的文件。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号