Утвердить XML-документ по схеме, поэтому документ должен содержать все элементы схемы

Использование NUnit и XMLUnit.NET
У меня есть два теста, которые проверяют сгенерированный XML-документ по схеме
Первое тестирование только необходимые элементы

<Test>
Public Sub GenerateXmlDocument_WithOnlyRequiredElements_SuccesfullyValidated()
    Dim factory As New TestFactory()
    Dim schemaConstraint As SchemaValidConstraint = factory.GreateSchemaConstraint()
    Dim invoice As factory.CreateInvoiceWithOnlyRequiredValues()
    Dim service As New MyService()

    Dim result As XmlDocument = service.GenerateXmlDocument(invoice)
    Dim documentSource As ISource = Input.FromDocument(result).Build()

    Assert.That(documentSource, schemaConstraint)
End Sub

Второе тестирование всех элементов

<Test>
Public Sub GenerateXmlDocument_WithAllElements_SuccesfullyValidated()
    Dim factory As New TestFactory()
    Dim schemaConstraint As SchemaValidConstraint = factory.GreateSchemaConstraint()
    Dim invoice As factory.CreateInvoiceWithAllValues()
    Dim service As New MyService()

    Dim result As XmlDocument = service.GenerateXmlDocument(invoice)
    Dim documentSource As ISource = Input.FromDocument(result).Build()

    Assert.That(documentSource, schemaConstraint)
End Sub

Оба теста охватывают почти все необходимые случаи как тип элемента, порядок и требования.
За исключением ситуации, когда схема содержит элемент с minOccurs="0" maxOccurs="1" и этот элемент отсутствует в документе XML, созданном во втором тесте (WithAllElements).

Вопрос: существует ли метод assert/validate, который может обрабатывать все элементы в схеме как требуется?

Я хочу это для ситуации, когда нужно добавить новый элемент. Затем добавление нового элемента, событие с minOccurs="0" сломаю тест.

1 ответ

Решение

Боюсь, схема здесь тебе не поможет. И в XMLUnit нет встроенного способа.

Вы можете проверить схему, в которой вы изменили все minOccurs="0" в автоматическом режиме - или вы можете попытаться автоматически создать XPath-тесты для ваших дополнительных элементов.

Другие вопросы по тегам