PHPUnit测试套件没有';不起作用


PHPUnit Test Suite doesn't work

这是必须使用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测试套件自动创建的

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测试中没有任何知识。

PHPUnit在后缀为"test"的类中查找测试,测试用例是前缀为"test"的公共方法,如您在文档和组织测试中所见

注意:如果将PHPUnit命令行测试运行程序指向某个目录它将查找*Test.php文件。

尝试

class ActionTest extends PHPUnit_Framework_TestCase
{
    public function testNewAction('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)));
        }
    }
}

或者,您可以在测试方法之前添加php注释和@test注释。通过这种方式,该方法可以保留其任意名称,并且不需要以"test"为前缀。

/**
* @test
*/
public function newActionAssignsTheGivenModulToView() {
    ///...
}