0
我正在使用testify測試XML編組並使用strings.Contains
來檢查我希望包含在XML中的線是否實際存在。爲xml /字符串失敗測試定製輸出驗證
但是,我想區分實際與期望的xml。
目前,我的代碼看起來是這樣的:
func (suite *BookSuite) TestXMLMarshal() {
priceXML, priceErr := xml.Marshal(PriceType{Price: 10, Type: "IND"})
suite.Nil(priceErr)
linePresent := strings.Contains(string(priceXML), `<PriceType Price="10" Type="IND"></PriceType>`)
if true != linePresent {
err := errors.New("Expected: \n" + `<PriceType Price="10" Type="IND"></PriceType>` + "\nGot: \n" + bookString)
suite.Error(err, err.Error())
fmt.Println(err)
}
}
有比單一的一個測試XML文件更多的線,所以你可以想像,如果聲明將是毛。任何想法清理這個更具擴展性?
謝謝馬特。但我們確實想測試XML的實際格式,因爲它正在被指定xml格式的第三方使用(我們必須跳過一些循環)。任何想法如何納入? – daino3
除非存在一些奇怪的空白要求,否則我會執行上述操作,然後在xml輸出上執行xml相對清晰度/規範化。大多數xml消費應用程序不關心空白(因爲xml庫文件級邏輯通常會處理這些)。如果你需要更多的控制編碼/ xml有Encoder.Indent來控制輸出的空白。 –