【发布时间】:2016-08-03 11:41:03
【问题描述】:
我正在使用 testify 测试 XML 编组,并使用 strings.Contains 检查我希望包含在 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 文件中的行数比测试中的单行多,因此您可以想象 if 语句会很粗。关于清理这个更可扩展的任何想法?
【问题讨论】: