私は testify を使用strings.Contains
して XML マーシャリングをテストしており、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 ファイルには、テストの 1 行よりも多くの行があるため、if ステートメントが大雑把になることが想像できます。よりスケーラブルなこれをクリーンアップするためのアイデアはありますか?