Проверка XML на основе XSD-схемы в модульном тесте PHP


Я разрабатываю компонент приложения на базе PHP, который экспортирует некоторые данные в XML-файл, который должен следовать схеме, определенной в файле XSD. Я знаю, как проверить файл вручную, но было бы очень удобно, если бы это можно было сделать в рамках модульных тестов.

Существует ли какая-либо доступная библиотека или платформа, которая может мне помочь в этом?

Author: miho, 2015-01-19

2 answers

Одной из возможностей было бы использовать DOMDocument::schemaValidate или DOMDocument::schemaValidateSource. Поскольку любой из этих двух методов возвращает логическое значение, вы можете затем утверждать, что возвращаемое значение true.

 3
Author: Havelock, 2015-01-19 15:09:11

Эта Проверка PHPUnit XSD библиотека определяет пользовательское PHPUnit_Framework_Constraint использование DOMDocument::schemaValidate.

Преимущество заключается в том, что это дает полезную ошибку при сбое проверки, а не просто говорит, что "ложь не соответствует действительности".

Использование

$constraint = new Jasny\PHPUnit\Constraint\XSDValidation("myschema.xsd");

$xml = $this->object->doSomething();
$this->assertThat($xml, $constraint);

Примечание: Это бесстыдный плагин моей собственной библиотеки с открытым исходным кодом.

 0
Author: Jasny - Arnold Daniels, 2017-01-23 08:55:00