URLからxmlデータをロードするために.NET XDocument.Load()メソッドを呼び出すメソッドがあります。クラスを単体テスト可能にしたい。
では、その呼び出しをモック可能/単体テスト可能にする方法は?
private void ProcessData(string url)
{
// todo: make this mockable
var xDocument = XDocument.Load(url);
// the rest of the code
}
私が使用した 1 つの解決策は、以下のように xmlUrlLoader をクラスに挿入することです。
private readonly Func<string, XDocument> _xmlUrlLoader;
public MyConstructor(Func<string,XDocument> xmlUrlLoader)
{
_xmlUrlLoader = xmlUrlLoader;
}
private void ProcessData(string url)
{
// todo: make this mockable
var xDocument = this._xmlUrlLoader(url);
// the rest of the code
}
もっと良い方法はありますか?