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