Zend Studio和PHPUnit开始出现问题

时间:2011-05-04 17:17:42

标签: php unit-testing zend-framework phpunit zend-studio

我正在尝试创建我的第一个单元测试。我使用Zend Studio,并通过转到:

将phpUnit库添加到我的项目中

Project -> Properties -> Add Library

当我将其作为PHP单元测试运行时,我收到以下错误:

Unable to run a PHPUnit session. Only PHPUNIT classes can be run as PHPUnit tests. Reason: Not tests found in IndexControllerTest.php

IndexControllerTest.php:

<?php
require_once 'application\controllers\IndexController.php';
require_once 'PHPUnit\Framework\TestCase.php';
/**
 * IndexController test case.
 */
class IndexControllerTest extends PHPUnit_Framework_TestCase
{
    /**
     * @var IndexController
     */
    private $IndexController;
    /**
     * Prepares the environment before running a test.
     */
    protected function setUp ()
    {
        parent::setUp();
        // TODO Auto-generated IndexControllerTest::setUp()
        $this->IndexController = new IndexController(/* parameters */);
    }
    /**
     * Cleans up the environment after running a test.
     */
    protected function tearDown ()
    {
        // TODO Auto-generated IndexControllerTest::tearDown()
        $this->IndexController = null;
        parent::tearDown();
    }
    /**
     * Constructs the test case.
     */
    public function __construct ()
    {
        // TODO Auto-generated constructor
    }
    /**
     * Tests IndexController->init()
     */
    public function testInit ()
    {
        // TODO Auto-generated IndexControllerTest->testInit()
        $this->markTestIncomplete("init test not implemented");
        $this->IndexController->init(/* parameters */);
    }
    /**
     * Tests IndexController->indexAction()
     */
    public function testIndexAction ()
    {
        // TODO Auto-generated IndexControllerTest->testIndexAction()
        $this->markTestIncomplete("indexAction test not implemented");
        $this->IndexController->indexAction(/* parameters */);
    }
}

我该如何解决?

1 个答案:

答案 0 :(得分:3)

您必须删除测试用例的__construct()方法。 PHPUnit将参数传递给构造函数,因此您必须将它们传递给parent::__construct()或者 - 更可能 - 完全删除构造函数。

此外,如果您正在使用Zend Framework并测试Zend_Controller_Action类,您可能需要考虑使用Zend_Test_PHPUnit_ControllerTestCase,因为它为您提供了大量的脚手架。请注意,每个测试都将从直接路径到达渲染内容,这些内容可能不够精细,无法满足您的需求。这不是我们的,所以我分别为控制器和视图创建了基础测试用例类。