Проверка XML на основе XSD-схемы в модульном тесте PHP
Я разрабатываю компонент приложения на базе PHP, который экспортирует некоторые данные в XML-файл, который должен следовать схеме, определенной в файле XSD. Я знаю, как проверить файл вручную, но было бы очень удобно, если бы это можно было сделать в рамках модульных тестов.
Существует ли какая-либо доступная библиотека или платформа, которая может мне помочь в этом?
2 answers
Одной из возможностей было бы использовать DOMDocument::schemaValidate
или DOMDocument::schemaValidateSource
. Поскольку любой из этих двух методов возвращает логическое значение, вы можете затем утверждать, что возвращаемое значение true
.
Эта Проверка PHPUnit XSD библиотека определяет пользовательское PHPUnit_Framework_Constraint
использование DOMDocument::schemaValidate
.
Преимущество заключается в том, что это дает полезную ошибку при сбое проверки, а не просто говорит, что "ложь не соответствует действительности".
Использование
$constraint = new Jasny\PHPUnit\Constraint\XSDValidation("myschema.xsd");
$xml = $this->object->doSomething();
$this->assertThat($xml, $constraint);
Примечание: Это бесстыдный плагин моей собственной библиотеки с открытым исходным кодом.