CodeIgniter和SimpleTest - 如何进行我的第一次测试?

时间:2010-05-16 20:26:18

标签: php unit-testing codeigniter simpletest

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

现在我想通过学习如何使用(A)正确的测试和(B)框架来改进我的开发。所以我为Firefox设置了CodeIgniter,SimpleTest和easy 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包中看到任何样本测试,到目前为止谷歌已经让我发布了假设单元测试已经在功能上可用的帖子。我该怎么办?

2 个答案:

答案 0 :(得分:2)

修改

如果您正在关注maroonbytes设置,请按照说明进行操作:

  1. 下载SimpleTest框架并将文件解压缩到@codeigniter目录。
  2. 在您的主文件夹和管理员/应用程序文件夹中,创建一个名为tests的新文件夹。
  3. 在新测试文件夹中设置名为“模型”,“视图”,“控制器”,“图书馆”和“帮助者”的其他文件夹
  4. 应该运行任何以.php结尾并且在任何这些文件夹中包含UnitTestCase的文件。 :)

答案 1 :(得分:1)

首先,必须正确命名测试。要测试welcome.php文件中的控制器welcome,测试名为 welcome_controller_test.php ,并存储在tests / controllers /下。有关更多信息,请参阅this post

其次,Xdebug的GET参数会干扰测试例程。请参见上面的帖子,this post

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

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

我现在正在快乐地进行测试。 CodeIgniter让我可以轻松创建/维护测试,因此我的TDD目标看起来可以达到。我之前在TDD上的尝试给了我这个想法,但是对于我来说,刮擦PHP对我来说太有效了(我们不会讨论VBA!)。