したがって、casperOneの回答を実装した後、別のエラーが発生しました。
私は次のようにIOException述べられました:
"Could not load file or assembly 'App_GlobalResources' or one of its dependencies. The system cannot find the file specified.":"App_GlobalResources"
スコット・アレンは、この問題の理由と固有の解決策を提供しました。
それで、私がしたことは、私のWebプロジェクトの「TResources」という名前の新しいフォルダーに「TResources」という名前の新しいリソースファイルを作成したことです。これは、テスト目的でのみ作成および使用されるResourcesフォルダーだからです(賢いですね)。
ResourcesWrapper次に、クラスのプロパティを変更して、TResources.Strings.MyStringResourceではなくreturnに変更しましたResources.Strings.MyStringResource。
注:モックオブジェクトを設定する場合のように、インターフェイスのプロパティは読み取り専用IResourcesであってはなりません。プロパティが読み取り専用の場合、値を設定できないため失敗します。
したがって、IResources次のようになります。
public interface IResources
{
string MyStringResource { get; set; }
}
ResourcesWrapperIResources次に、次のように実装する必要があります。
public class ResourcesWrapper : IResources
{
public string MyStringResource
{
get
{
return TResources.Strings.MyStringResource;
}
set
{
//do nothing
}
}
}
これにより、次のように、単体テストでモックを成功させることができます。
var mock = new Mock<IResources>();
mock.SetupProperty(m => m.MyStringResource, "");
注:initialValueプロパティはから取得した値を返すため、上記のメソッドのパラメーターに何も指定する必要はありませんStrings.resx。
これで私の質問は終わりです。これがインターネット上の他の誰かに役立つことを願っています。