-2

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

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

我知道你需要一个 testing 或 tests 或 test 文件夹,那部分下来。里面的类会是这样的:

class ExampleTest extends PHPUnit_Framework_TestCase{}

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

当涉及到没有像zend这样的框架或其他东西的测试时,我迷失了......您的帮助表示赞赏。

注意:我没有使用任何类型的框架(除了 phpunit),所以将我指向 zend 或 cakephp 不会有帮助。这只是从头开始编写的。

4

2 回答 2

1

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

于 2013-01-18T07:43:34.973 回答
0

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

如果我回到您的问题,在这里是的,您需要(需要)示例类,否则您如何创建新的示例对象?不,您的示例类及其方法不应该写在 ExampleTest 文件中,您需要编写函数来测试 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

}

这是一个非常愚蠢的例子,但我希望你明白我的意思。

ps:我不是母语人士,所以对我的英语感到抱歉。如果我不理解您的问题并且这没有帮助,请告诉我,以便我删除。

于 2013-01-18T08:47:07.053 回答