ชุดทดสอบ 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


person Nicolas Tedjadharma    schedule 12.02.2015    source แหล่งที่มา
comment
อ่านเอกสาร PHPUnit   -  person Drumbeg    schedule 12.02.2015


คำตอบ (2)


หรือคุณสามารถนำหน้าวิธีทดสอบด้วยความคิดเห็น php และคำอธิบายประกอบ @test วิธีนี้จะทำให้เมธอดสามารถเก็บชื่อไว้ได้ตามใจชอบ และไม่จำเป็นต้องขึ้นต้นด้วย "test"

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

person    schedule
comment
ชื่อคลาสไม่จำเป็นต้องมีส่วนต่อท้าย 'Test' - person Drumbeg; 12.02.2015
comment
@Drumbeg ฉันเพิ่มลิงก์เพื่อจัดการการทดสอบ - person acfreitas; 12.02.2015
comment
แค่พยายามจะชี้ให้เห็นว่าการเพิ่ม 'Test' เป็นส่วนต่อท้ายชื่อคลาสนั้นไม่จำเป็น - person Drumbeg; 12.02.2015
comment
ฉันเปลี่ยนการสืบทอดจากการทดสอบชั้นเรียนของฉันแล้ว ตอนนี้มันสืบทอด PHPUnit_Framework_TestCase อย่างที่คุณพูด แต่ด้วยการเปลี่ยนแปลงนี้ ฉันไม่สามารถทดสอบโค้ดของฉันได้อีกต่อไป เพียงสืบทอด \TYPO3\CMS\Core\Tests\UnitTestCase ฉันสามารถทดสอบได้ เป็นข้อมูล: ฉันใช้การทดสอบ PHPUnit ใน Typo3 Backend และโปรเจ็กต์นี้เป็นโปรเจ็กต์ extbase - person Nicolas Tedjadharma; 13.02.2015
comment
@Nicolas Tedjadharma การใช้งานได้ผลไหม หากใช่ คุณสามารถทำเครื่องหมายคำตอบว่ายอมรับแล้ว โหวตเห็นด้วย และเปิดคำถามใหม่พร้อมข้อมูลเพิ่มเติม คุณอ่านเอกสารแล้วหรือยัง? เกี่ยวกับการทดสอบเพิ่มเติม คุณสามารถขยายการทดสอบคลาสข่าวและเขียนกรณีการทดสอบใหม่ได้ - 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