PHPUnit und Mock-Objekten nicht funktioniert

Ich bin nicht sicher, wenn ich mache etwas falsch oder es ist ein Fehler mit PHPUnit und mock-Objekte. Grundsätzlich bin ich versucht zu testen, ob $Model->doSomething() wird aufgerufen, wenn $Model->start() ausgelöst wird.

Ich bin mit Ubuntu in einer VirtualBox, und phpunit 1.1.1 installiert es über pear.

Den vollständigen code weiter unten. Jede Hilfe würde geschätzt, es treibt mich verrückt.

<?php
require_once 'PHPUnit/Autoload.php';

class Model
{
    function doSomething( ) {
        echo 'Hello World';
    }

    function doNothing( ) { }

    function start( ) {
        $this->doNothing();
        $this->doSomething();
    }
}

class ModelTest extends PHPUnit_Framework_TestCase
{
    function testDoSomething( )
    {
        $Model = $this->getMock('Model');
        $Model->expects($this->once())->method('start'); # This works
        $Model->expects($this->once())->method('doSomething'); # This does not work
        $Model->start();
    }
}
?>

Die Ausgabe von PHPUnit:

There was 1 failure:

1) ModelTest::testDoSomething
Expectation failed for method name is equal to <string:doSomething> when invoked 1 time(s).
Method was expected to be called 1 times, actually called 0 times.


FAILURES!
Tests: 1, Assertions: 1, Failures: 1.
  • Ich habe es funktioniert, aber ich musste der Methoden als array. code $Model = $this->getMock('Modell',array('doSomething','doNothing')); #$Model->erwartet, dass($this->once())->Methode('start'); # Das funktioniert
  • Weiß jemand, warum müssen Sie die Methoden. Ist dies ein Konfigurationsproblem. Viele Beispiele für die Verwendung von mocks nicht Zustand, die Sie haben, um anzugeben, Methoden.
  • Hast du wirklich meinst, phpUnit 1.1.1? Die Letzte ist 3,7, und die frühesten, die Sie wahrscheinlich zu begegnen, die in einem unterstützten linux-Distribution phpUnit 3.4 oder so.
  • Tut mir Leid mein schlechtes, nicht sicher, wo ich die 1.1.1 aus, ich bin mit der version 3.6.12. Vielen Dank an alle für Eure Hilfe.
InformationsquelleAutor James | 2012-08-26
Schreibe einen Kommentar