Rangkaian Tes PHPUnit tidak berfungsi

Inilah metode yang harus diuji dengan 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)));
    }
}

kode di bawah ini dibuat secara otomatis dari 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);
}

Tapi itu tidak berhasil. PHPUnit tidak menunjukkan komentar apa pun mengapa kode pengujian tidak berfungsi.. Saya sangat membutuhkan bantuan, dan setiap bantuan akan sangat dihargai karena saya tidak memiliki pengetahuan tunggal dalam Tes PHPUnit.


person Nicolas Tedjadharma    schedule 12.02.2015    source sumber
comment
Baca dokumentasi PHPUnit.   -  person Drumbeg    schedule 12.02.2015


Jawaban (2)


Alternatifnya, Anda dapat mengawali metode pengujian dengan komentar php dan anotasi @test. Dengan cara ini metode dapat mempertahankan nama arbitrernya, dan tidak perlu diawali dengan "test".

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

person    schedule
comment
Nama kelas tidak memerlukan akhiran 'Tes'. - person Drumbeg; 12.02.2015
comment
@Drumbeg, saya menambahkan tautan ke pengorganisasian tes - person acfreitas; 12.02.2015
comment
Saya hanya mencoba menunjukkan bahwa menambahkan 'Test' sebagai akhiran pada nama kelas tidaklah wajib. - person Drumbeg; 12.02.2015
comment
Saya memang mengubah warisan dari tes kelas saya, sekarang mewarisi PHPUnit_Framework_TestCase seperti yang Anda katakan, tetapi dengan perubahan ini saya tidak dapat menguji kode saya lagi. hanya dengan pewarisan ke \TYPO3\CMS\Core\Tests\UnitTestCase saya bisa mengujinya. Sekadar info: Saya menggunakan PHPUnit Test di Typo3 Backend, dan proyek tersebut merupakan proyek extbase. - person Nicolas Tedjadharma; 13.02.2015
comment
@Nicolas Tedjadharma, implementasinya berhasil? Jika ya, Anda dapat menandai jawaban sebagai diterima, memberi suara positif, dan membuka pertanyaan baru dengan info lebih lanjut. Apakah Anda membaca dokumentasinya? Tentang pengujian lainnya, Anda dapat memperluas pengujian kelas berita dan menulis kasus pengujian baru. - person acfreitas; 13.02.2015
comment
tidak, ternyata tidak. Dikatakan Argumen 1 yang diteruskan ke TYPO3\CMS\Extbase\Persistence\Repository::__construct() harus mengimplementasikan antarmuka TYPO3\CMS\Extbase\Object\ObjectManagerInterface, tidak ada yang diberikan, disebut di /Applications/MAMP/htdocs/typo3conf/ext/phpunit /Composer/vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php pada baris 288 dan ditentukan - person Nicolas Tedjadharma; 13.02.2015
comment
@acfreitas, Anda dapat melihat kode lengkapnya di GitHub kami github.com/TeamProjektWS1415/rere - person Nicolas Tedjadharma; 15.02.2015