单元测试——如何在没有zend这样的框架的情况下测试php


unit testing - How to test php with out a framework like zend

我习惯使用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是没有帮助的。

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

我不确定我理解你的问题,但我想你是在问如何测试,而你不使用像zf等框架。在我看来,这是在学习基础知识之前学习框架的糟糕部分。我认为这是一个错误(可悲的是,我也犯了这个错误),很多人试图使用框架,但他们没有足够的php知识,所以他们做了很多不好的做法(如。G:我,现在我试图忘记我从框架中学到的东西,当我刚接触php),所以我的建议是使用框架,当你完成了php基础(这部分不是你的问题,只是一个建议,当我看到"我很擅长框架,但我失败了框架")。

如果我回到你的问题,在这里是的,你需要(需要)的例子类,否则你怎么能创建一个新的例子对象?不,你的例子类和它的方法不应该写在ExampleTest文件中,你需要写函数来测试例子对象的方法(它们是我们期望的吗?)。它将失败,然后编写示例类和方法来通过此测试(参见: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:我的母语不是英语,很抱歉我的英语不好。如果我不明白你的问题,这是没有帮助,请让我知道,以便我可以删除