Проблемы с Zend Studio и PHPUnit - PullRequest
2 голосов
/ 04 мая 2011

Я пытаюсь создать свой первый модульный тест.Я использую Zend Studio, и я добавил библиотеку phpUnit в свой проект, перейдя по адресу:

Project -> Properties -> Add Library

Когда я запускаю ее как PHP Unit Test, я получаю следующую ошибку:

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 Ответ

3 голосов
/ 05 мая 2011

Вы должны удалить метод теста __construct(). PHPUnit передает параметры конструктору, поэтому вы должны либо передать их в parent::__construct(), либо, что более вероятно, полностью удалить конструктор.

Кроме того, если вы используете Zend Framework и тестируете классы Zend_Controller_Action, вы можете рассмотреть возможность использования Zend_Test_PHPUnit_ControllerTestCase, так как он предоставляет вам множество строительных лесов. Обратите внимание, что каждый тест будет проходить от прямого маршрута к отображаемому контенту, который может быть недостаточно детализирован для ваших нужд. Это было не для нас, поэтому я создал базовые классы тестовых примеров для контроллеров и представлений отдельно.

...