3

我习惯于使用 LAMP、PHP5、MySQL 以及带有 Xdebug 的 NetBeans 进行 Web 开发。

现在我想通过学习如何使用(A)正确的测试和(B)框架来改进我的开发。所以我已经为 Firefox 设置了 CodeIgniter、SimpleTest 和简单的 Xdebug插件。这很有趣,因为maroonbytes为我提供了清晰的说明和可供下载的配置设置。我站在巨人的肩膀上,心存感激。

我过去曾使用过一些 SimpleTest。这是我写的那种东西:

<?php
require_once('../simpletest/unit_tester.php');
require_once('../simpletest/reporter.php');

class TestOfMysqlTransaction extends UnitTestCase {
  function testDB_ViewTable() {
    $this->assertEqual(1,1);   // a pseudo-test
  }
}
$test = new TestOfMysqlTransaction();
$test->run(new HtmlReporter())
?>

所以我希望我知道测试是什么样的。我不知道在哪里以及如何在我的新设置中进行测试。我在 maroonbytes 包中没有看到任何示例测试,到目前为止,谷歌已经引导我发布假设单元测试已经在功能上可用的帖子。我该怎么办?

4

2 回答 2

2
于 2010-05-17T05:20:51.087 回答
1

首先,必须正确命名测试。为了测试一个控制器欢迎放置在文件welcome.php 中,一个名为welcome_controller_test.php的测试存储在tests/controllers/ 下。有关更多信息,请参阅这篇文章

其次,Xdebug 的 GET 参数会干扰测试例程。见上面的帖子,还有这个帖子

第三,我发布的存根测试需要删除两个四行:

//require_once('../simpletest/unit_tester.php');
//require_once('../simpletest/reporter.php');
...
//$test = new TestOfMysqlTransaction();
//$test->run(new HtmlReporter())

我现在正在相当愉快地进行测试。CodeIgniter 让我可以轻松地创建/维护测试,因此我的 TDD 目标看起来可以实现。我之前对 TDD 的尝试给了我这个想法,但是从头开始 PHP 对我来说太贫瘠了,无法发挥作用(而且我们不会讨论 VBA!)。

于 2010-08-03T17:33:02.720 回答