V. *_*ier 1 php phpunit simplexml simplexml-load-string
我为我的PHP应用程序使用phpunit(100%覆盖率)进行单元测试,我有这个:
$xml = simplexml_load_string($soapResponse);
if (false === $xml) {
throw new \Exception('invalid XML');
}
Run Code Online (Sandbox Code Playgroud)
我找不到带有simplexml_load_stringreturn 的测试用例false。
如果您有解决方案...谢谢
正如John C所指出的那样,无效的xml将导致simplexml_load_string返回false并生成警告。另外,您可能要禁用这些警告并进行存储。为此,您可以使用libxml_use_internal_errors和libxml_get_errors。
<?php
$soapResponse = 'invalid_xml';
libxml_use_internal_errors(true);
$xml = simplexml_load_string($soapResponse);
if (false === $xml) {
$errors = libxml_get_errors();
echo 'Errors are '.var_export($errors, true);
throw new \Exception('invalid XML');
}
Run Code Online (Sandbox Code Playgroud)
所以输出是:
array (
0 =>
LibXMLError::__set_state(array(
'level' => 3,
'code' => 4,
'column' => 1,
'message' => 'Start tag expected, \'<\' not found
',
'file' => '',
'line' => 1,
)),
)
Run Code Online (Sandbox Code Playgroud)
这可以帮助您识别XML中有问题的部分。当XML很大时,这非常有用。
| 归档时间: |
|
| 查看次数: |
4175 次 |
| 最近记录: |