Ich versuche, eine Web-Service-Schnittstelle-Klasse mit PHPUnit zu testen. Grundsätzlich macht diese Klasse Aufrufe an eine SoapClient Gegenstand. Ich versuche, diese Klasse in PHPUnit zu testen, indem ich die getMockFromWsdl
hier beschriebenen Methode:
Da ich jedoch mehrere Methoden derselben Klasse testen möchte, muss ich jedes Mal, wenn ich das Objekt einrichte, auch die Mock-WSDL einrichten SoapClient Objekt. Dies führt zu einem schwerwiegenden Fehler, der ausgelöst wird:
Fatal error: Cannot redeclare class xxxx in C:\web\php5\PEAR\PHPUnit\Framework\TestCase.php(1227) : eval()'d code on line 15
Wie kann ich ein und dasselbe Mock-Objekt in mehreren Tests verwenden, ohne es jedes Mal aus der WSDL neu generieren zu müssen? Das scheint das Problem zu sein.
--
Nachdem ich gebeten wurde, etwas Code zu posten, den ich mir ansehen kann, hier die Setup-Methode in der TestCase:
protected function setUp() {
parent::setUp();
$this->client = new Client();
$this->SoapClient = $this->getMockFromWsdl(
'service.wsdl'
);
$this->client->setClient($this->SoapClient);
}