如何使用像zend这样的框架来测试php

时间:2013-01-18 07:35:51

标签: php unit-testing testing phpunit

我习惯使用zend或rails等框架并使用各种测试方法。但是,我无法理解如何在php中测试一个基于非框架的常规类,它具有以下方法:

class Example{
    public function add(){}
    public function edit(){}
    public function delete(){}
    public function list(){}
}

我知道你需要一个测试或测试或测试文件夹,这些部分是关闭的。内部的课程会是这样的:

class ExampleTest extends PHPUnit_Framework_TestCase{}

若是,那么功能是什么?和上面一样?它会知道使用示例类还是我必须要求它?

当谈到测试没有像zend或其他东西这样的框架时,我很失落....感谢您的帮助。

注意:我没有使用任何类型的框架(除了phpunit)所以指向我zend或cakephp无济于事。这只是从头开始写的。

2 个答案:

答案 0 :(得分:1)

我不确定这是否是一个答案,但您需要做的就是阅读PHPUnit手册:http://www.phpunit.de/manual/current/en/

答案 1 :(得分:0)

我不确定我理解你的问题,但我认为你在询问如何测试,而你没有使用像zf这样的框架.Imho这是在学习基础知识之前学习框架的不良部分。我认为这是一个错误(遗憾的是,我也犯了这个错误),很多人试图使用框架,但是他们对php还没有足够的知识,所以他们做了很多不好的做法(例如:我,现在我正试图忘记我从框架中学到的东西,当我刚接触php时)所以我的建议是使用框架,当你完成php基础知识(这部分不是你的问题,只是一个建议,当我看到“我对框架很好,但没有框架就失败了。”。

如果我回到你的问题,在这里是的你需要(需要)示例类,否则如何创建一个新的示例对象?不,你的示例类和它的方法不应该写在ExampleTest文件中,你需要编写函数来测试Example对象的方法(他们正在做我们期望的吗?)。它将失败,然后编写Example类和方法来传递此测试(请参阅:http://www.phpunit.de/manual/current/en/test-driven-development.html)。您案例的一个例子:

class ExampleTest extends PHPUnit_Framework_TestCase{
   require_once('../classes/exampe.php');

   protected $object;

   protected function setUp() {
    $this->object = new Example;
    //we will use object to test it.
   }

   function testAddingMustReturnIntegerValue(){ //codes to check is it really integer? }
   function testAddingNegativeValuesForbidden(){ //codes to check when we try to add negatives it shouldn't perform this action }

   //some other thing that we are expecting from add and other methods

}

这是一个极端虚拟的例子,但我希望你明白我的意思。

p.s:我不是母语人士,对我的英语很抱歉。如果我不理解你的问题,这没有帮助请告诉我,以便我可以删除。