Phpunit, spotter SoapClient ist problematisch (falsche Zaubermethoden)

7

Ich versuche, SoapClient mit dem folgenden Code zu verspotten:

%Vor%

Dies wird nicht funktionieren, da phpunit mockbuilder die Funktion getAuthenticateServiceSettings nicht findet. Dies ist eine Soap-Funktion, die in der WSDL angegeben ist.

Wenn ich jedoch die SoapClient-Klasse und die getAuthenticateServiceSettings-Methode erweitere, funktioniert es.

Das Problem ist, ich habe 100 von SOAP-Aufrufen, alle mit ihren eigenen Parametern usw., also möchte ich nicht jede einzelne SOAP-Funktion vortäuschen und mehr oder weniger die ganze WSDL-Datei neu erstellen ...

Gibt es eine Möglichkeit, "magische" Methoden zu verspotten?

    
Patrik Grinsvall 14.08.2014, 07:14
quelle

3 Antworten

14

Mit PHPUnit können Sie einen Webservice basierend auf einer WSDL-Datei stubben.

%Vor%

Siehe Beispiel hier:

Ссылка

    
user1777136 30.01.2015, 08:42
quelle
5

Normalerweise arbeite ich nicht direkt mit der Klasse \ SoapClient, stattdessen verwende ich eine Client-Klasse, die den SoapClient verwendet. Zum Beispiel:

%Vor%

Auf diese Weise ist es einfacher, die Client-Klasse zu verspotten, als den SoapClient zu verspotten.

    
zuzuleinen 08.12.2014 15:55
quelle
1

Ich konnte getMockFromWsdl nicht für ein Testszenario verwenden, also habe ich die Methode __call , die im Hintergrund aufgerufen wird, verspottet:

%Vor%

P.S. Ich habe versucht, __soapCall zuerst zu verwenden, da __call veraltet ist, aber das hat nicht funktioniert.

    
solarc 17.10.2017 17:41
quelle

Tags und Links