Набор тестов PHPUnit не работает

Это метод, который необходимо протестировать с помощью PHPUnit Test.

public function newAction(\ReRe\Rere\Domain\Model\Modul $newModul = NULL) {
    if ($this->request->hasArgument(self::RETURNMODUL)) {
        $this->view->assignMultiple(array(self::MODULNAME => $this->request->getArgument(self::RETURNMODUL),
            self::MODULNUMMER => $this->request->getArgument(self::MODULNUMMER),
            self::GUELTIGKEITSZEITRAUM => $this->request->getArgument(self::GUELTIGKEITSZEITRAUM),
            self::FACHNAME => $this->request->getArgument(self::FACHNAME),
            self::FACHNUMMER => $this->request->getArgument(self::FACHNUMMER),
            self::PRUEFER => $this->request->getArgument(self::PRUEFER)));
    } else {
        $this->view->assignMultiple(array('newModul' => $newModul, self::GUELTIGKEITSZEITRAUM => $this->request->getArgument(self::GUELTIGKEITSZEITRAUM)));
    }
}

приведенный ниже код был создан автоматически из PHPUnit Test Suite

public function newActionAssignsTheGivenModulToView() {
    $modul = new \ReRe\Rere\Domain\Model\Modul();

    $view = $this->getMock(self::VIEWINTERFACE);
    $view->expects($this->once())->method(self::ASSIGN)->with('newModul', $modul);
    $this->inject($this->subject, 'view', $view);

    $this->subject->newAction($modul);
}

Но это просто не работает. PHPUnit не показал никаких комментариев, почему тестовый код не работает. Мне действительно нужна помощь, и каждая помощь будет очень признательна, так как у меня нет ни единого знания в PHPUnit Test.


person Nicolas Tedjadharma    schedule 12.02.2015    source источник
comment
Прочтите документацию PHPUnit.   -  person Drumbeg    schedule 12.02.2015


Ответы (2)


В качестве альтернативы, вы можете предварить тестовый метод комментарием php и аннотацией @test. Таким образом, метод может сохранить свое произвольное имя, и ему не нужно добавлять префикс «тест».

/**
* @test
*/
public function newActionAssignsTheGivenModulToView() {
    ///...
}
person knb    schedule 15.02.2015

person    schedule
comment
Имя класса не требует суффикса «Тест». - person Drumbeg; 12.02.2015
comment
@Drumbeg, я добавил ссылку на организацию тестов - person acfreitas; 12.02.2015
comment
Просто пытался указать, что добавление «Test» в качестве суффикса к имени класса не является обязательным. - person Drumbeg; 12.02.2015
comment
Я изменил наследование от моего classtest, теперь он наследует PHPUnit_Framework_TestCase, как вы сказали, но с этим изменением я больше не могу тестировать свой код. просто с наследованием на \TYPO3\CMS\Core\Tests\UnitTestCase я могу это протестировать. В качестве информации: я использую тест PHPUnit в Typo3 Backend, и проект является проектом extbase. - person Nicolas Tedjadharma; 13.02.2015
comment
@ Николас Теджадхарма, реализация сработала? Если да, вы можете пометить ответ как принятый, проголосовать и открыть новый вопрос с дополнительной информацией. Вы читали документацию? Что касается дополнительных тестов, вы можете расширить тест класса новостей и написать новый тестовый пример. - person acfreitas; 13.02.2015
comment
нет, не было. В нем говорится, что аргумент 1, переданный в TYPO3\CMS\Extbase\Persistence\Repository::__construct(), должен реализовывать интерфейс TYPO3\CMS\Extbase\Object\ObjectManagerInterface, не указан, вызывается в /Applications/MAMP/htdocs/typo3conf/ext/phpunit /Composer/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php в строке 288 и определено - person Nicolas Tedjadharma; 13.02.2015
comment
@acfreitas, вы можете увидеть полный код на нашем GitHub github.com/TeamProjektWS1415/rere. - person Nicolas Tedjadharma; 15.02.2015