PHP测试驱动开发介绍

发表于:2010-07-06来源:作者:点击数: 标签:phpPHP开发驱动
PHP 测试驱动开发 介绍 软件测试 摘要 本文向你介绍测试驱动开发的概念,并用一个简单的示例项目来做示范。 介绍xml:lang="en-us" 开发PHP产品有很多不同的方法。我们大多数倾向于从一个简单的脚本开始,逐步向前推进。 或许我们可以预先列出我们的脚本,但

  PHP测试驱动开发介绍   软件测试

  摘要

  本文向你介绍测试驱动开发的概念,并用一个简单的示例项目来做示范。

  介绍xml:lang="en-us">

  开发PHP产品有很多不同的方法。我们大多数倾向于从一个简单的脚本开始,逐步向前推进。 或许我们可以预先列出我们的脚本,但是我们往往是停留在开发阶段,在需要测试的时候不会真正的去开始测试。基本上,我们是先开发后测试。

  但是这样做或许不是最好的办法,可能会在今后带来问题。这就是为什么一些开发者提倡一种不同的开发方式,叫做测试驱动开发(TDD)的原因- 就是先测试后开发。

  你可能会疑惑这样该怎么做,而这正是本文将讨论的。我将带领你们通过一个真实的简单项目去示范TDD如何工作。本文和示例项目都基于Noel Darlow(“McGruff”)在论坛中向另一个论坛成员演示TDD如何工作的讨论。

  我们的示例项目是一个Biter类,它通过使用正则表达式可以“咬掉”字符串中的片段,就象这样:

  bite ('/pattern/');?>

  我们的类也将修改原始的字符串,把匹配的部分去除(所以我们叫它“吞噬者”)。

  让我们从设置测试框架开始。

  设置测试框架

  由于我们从测试出发,我们需要有一些测试框架。我将使用SimpleTest 框架,仅仅因为我最熟悉它。

  下载一份SimpleTest的拷贝,把它安装在你本机或者你的服务器上。然后创建一个叫做"test_biter.php"的新文件,里面写下面的代码:

  require_once 'simpletest/unit_tester.php';

  require_once 'simpletest/reporter.php';

  class BiterTestCase extends UnitTestCase {

  function testSetup () {

  $this->assertTrue(false);

  }

  }

  $test = new BiterTestCase('TDD Biter Test');

  $test->run(new HtmlReporter());

  ?>

  让我们分析一下这个例子。首先我们包含了一些SimpleTest框架的文件(你要确认一下路径是否和你的一样)。接着我们建立了一个叫做 BiterTestCase的新类,它将用来测试我们的Biter类。象你看到的一样,BiterTestClase类继承于UnitTestCase 类,这个意味着BiterTestClass是我们第一个真正意义上的测试用例

  BiterTestClass类只有一个方法调用叫做'testSetup'。任何以“test”开头的方法都会被SimpleTest框架自动执行,因此它们应该是被用来测试项目中的某个部分。在上面的例子中,我们通过调用assertTrue()方法来确认框架被正确设置。

  例子中的后面两行是建立一个测试用例的实例,然后运行所有测试。如果所有设置都正确的话,你会得到下面的输出:

原文转自:http://www.ltesting.net