使用 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"
并且在第二个测试(WithAllElements)中生成的 Xml 文档中缺少该元素。
问题:是否有一个断言/验证方法可以根据需要处理模式中的所有元素?
我想要这个用于需要添加新元素的情况。然后添加新元素,事件minOccurs="0"
将打破测试。