XmlNodeList をループ処理したい。Moq で XmlNodeList をモックして、foreach ループのようにループできるようにするにはどうすればよいですか。
foreach (XmlNode xmlNode in nodes)
{
//Do something with node
}
メソッドでセットアップしようとしましたSetupSequence
が、目的のモックを作成できませんでした。
XmlNodeList をループ処理したい。Moq で XmlNodeList をモックして、foreach ループのようにループできるようにするにはどうすればよいですか。
foreach (XmlNode xmlNode in nodes)
{
//Do something with node
}
メソッドでセットアップしようとしましたSetupSequence
が、目的のモックを作成できませんでした。
内部のforeach
呼び出しGetEnumerator
とそれはあなたがモックする必要があるものです:
var xmlNodesMock = new Mock<XmlNodeList>();
xmlNodesList
.Setup(l => l.GetEnumerator())
.Returns(new XmlNode[] { /* values go here */ }.GetEnumerator());
XmlNode
当然、メソッド内の配列Returns
を実際の値で初期化する必要があります。実際の実装を置き換えることができるように、モックリストはテストされたメソッドに注入可能である必要があることに注意してください。