\ SoapClientの応答をファイルからXMLで嘲笑したい。ローカルXMLのSoapClient応答を模倣する
SoapClientがファイルから返すのと同じように、stdClassオブジェクトを作成するにはどうすればよいですか。
クライアントは既にSoapClientをラップしているので、簡単に応答を模擬することができます。
私のモックは、このようなものです:
$soapClient->expects($this->once())
->method('call')
->will(
$this->returnValue(
simplexml_load_string(
file_get_contents(__DIR__ . '/../../../Resources/file.xml')
)
)
);
しかし、これはSimpleXMLをしていないはstdClassを返します。
更新:
提案json_encode/json_decodeハックのdoesntのSoapClientがそれらを返すなどの属性を処理するように見える:
のSoapClient:
object(stdClass)[4571]
public 'Lang' => string 'de' (length=2)
public 'Success' => boolean true
ハック:
object(stdClass)#27 (3) {
["@attributes"]=>
object(stdClass)#30 (2) {
["Lang"]=>
string(2) "de"
["Success"]=>
string(4) "true"
この試してください: '$ my_std_class = json_decode(json_encode($のmy_simplexmlelementを));' – Matteo