我們需要驗證我們生成的xml文檔的內容。是否有任何框架可以幫助您輕鬆提取和驗證文檔的內容?MSTest的XML單元測試框架
的東西,我們需要知道
- 包含元素的元素X
- 值x
- X元素包含z值屬性Ÿ
- 意想不到的元素
一點也沒有」如果沒有斷言,那麼這很重要,這可以通過MSTest完成
我們需要驗證我們生成的xml文檔的內容。是否有任何框架可以幫助您輕鬆提取和驗證文檔的內容?MSTest的XML單元測試框架
的東西,我們需要知道
一點也沒有」如果沒有斷言,那麼這很重要,這可以通過MSTest完成
看看流利斷言庫文件的位置:http://fluentassertions.codeplex.com/documentation
題爲「XML類」的部分聽起來像你以後。代碼使用下面的LINQ-to-XML。
xDocument.Should().HaveRoot("configuration");
xDocument.Should().HaveElement("settings");
xElement.Should().HaveAttribute("age", "36");
xElement.Should().HaveElement("address");
xAttribute.Should().HaveValue("Amsterdam");
你可以從這裏的NuGet安裝FluentAssertions:http://nuget.org/packages/FluentAssertions
這看起來完全是我以後的事情,我得試試看 –
您也可以使用像XSD.EXE工具(包括在VS)從你有你的XML XSD文件生成C#實體。
生成對象後,可以使用XmlSerializer的實例來反序列化XML。如果你不能反序列化你的XML,那麼你會很快知道你有無效的XML。
之後,您應該能夠通過使用反序列化實體的各種屬性來相當容易地驗證XML的內容。
Here is a good starter blog post關於從XSD生成實體對象,它使用XmlSerializer顯示一些簡單的反序列化代碼。
你有xsd的xml嗎? –
我不想依賴xsd。此刻我們必須進行一些後期處理,以包含具有默認值的屬性。我寧願可以查詢文檔的東西。也許只是一些LINQ到基於xml的幫助程序 –
我問到xsd的唯一原因是它可以很容易地生成POCO代碼。一旦你將Xml反序列化爲對象,驗證內容是微不足道的。反序列化的行爲將有助於驗證格式化。 –