MSTestでMoqを使用する方法を学んでいます。既存のアプリケーションで、テストしたい次の方法があります。
/// <summary>
/// Return the marker equipment Id value give a coater equipment Id value.
/// </summary>
/// <param name="coaterEquipmentId">The target coater</param>
/// <returns>The marker equipment Id value</returns>
internal static string GetMarkerEquipmentId(string coaterEquipmentId)
{
return CicApplication.CoaterInformationCache
.Where(row => row.CoaterEquipmentId == coaterEquipmentId)
.Select(row => row.MarkerEquipmentId)
.First();
}
CicApplicationオブジェクトは、 CoaterInformationクラスのリストであるCoaterInformationCacheという名前のプロパティを持つ「グローバル」オブジェクトです。
どういうわけかCicApplication.CoaterInformationCacheをモックする必要があると思います。おそらく、実行時に値のみを含むグローバルオブジェクトを介してリストにアクセスするのではなく、CoaterInformationクラスのリストを含むインターフェイスをこのメソッドに渡す必要がありますか?
どうもありがとう