测试驱动开发(Test-driven development)是现代计算机软件开发方法的一种。利用 测试来驱动软件程序的设计和实现。测试驱动开始流行于20世纪90年代。测试驱动开发是极限 编程中倡导的程序开发方法,方法主要是先写测试程序,然后再编码使其通过测试。测试驱 动开发的目的是取得快速反馈并使用“illustrate the main line”方法来构建程序。测试 驱动开发的比喻。开发可以从两个方面去看待:实现的功能和质量。测试驱动开发更像两顶 帽子思考法的开发方式,先戴上实现功能的帽子,在测试的辅助下,快速实现正确的功能; 再戴上重构的帽子,在测试的保护下,通过去除冗余和重复的代码,提高代码重用性,实现 对质量的改进。可见测试在测试驱动开发中确实属于核心地位,贯穿了开发的始终。
放置位置app/{$app_id}/testcase/{$test_case_name}.php
例子1:
app/myapp/testcase/{$test_case_name}.php
<?php
class test extends PHPUnit_Framework_TestCase
{
protected $app;
public function setUp() {
$this->app = app::get('base');
}
public function test_setconf()
{
$this->assertEquals($this->app->setConf('test_test', 10), true);
}
public function test_getconf()
{
$this->assertEquals($this->app->getConf('test_test', 10), 10);
}
public function testFailure3()
{
$this->assertEquals("foo\nbar\nbaz\n", "foo\nbah\nbaz\n");
}
}
首先要保证系统已经安装dev app. 然后使用命令行工具进行测试
使用方法: cmd dev:test do app的id 测试文件名 例子: dev:test do dev sample.php
例子2: 代码见例子1
bryant@forsky /var/www/ecstore/app/base %> ./cmd dev:test do myapp test.php -- test -------------------------------------------------------------- PHPUnit 3.1.3 by Sebastian Bergmann. ..F Time: 0 seconds There was 1 failure: 1) testFailure3(test) Failed asserting that two strings are equal. --- Expected +++ Actual @@ -1,3 +1,3 @@ foo -bar +bah baz /Users/bryant/codes/ecos2/app/myapp/testcase/test.php:22 /Users/bryant/codes/ecos2/app/dev/lib/command/test.php:27 /Users/bryant/codes/ecos2/app/base/lib/shell/prototype.php:103 /Users/bryant/codes/ecos2/app/base/lib/shell/loader.php:222 /Users/bryant/codes/ecos2/app/base/lib/shell/loader.php:199 /Users/bryant/codes/ecos2/app/base/lib/shell/loader.php:54 /Users/bryant/codes/ecos2/app/base/cmd:55 FAILURES! Tests: 3, Failures: 1.