ASP.NET MVC 4 Web アプリケーションの Visual Studio 2012 で単体テスト プロジェクトに取り組んでいます。このソリューションには 3 つのプロジェクトがあります。
- 管理UI
- 単体テスト
- WebUI
WebUI には、App_GlobalResources フォルダー内に配置用のいくつかの resx ファイルがあり、以下を使用します。
HttpContext.GetGlobalResourceObject("Resources", key).ToString()
文字列を取得します。
次に、ローカライズを使用するアクション メソッドの単体テストを行う必要があります。メソッドの単体テスト中に文字列を取得したいと思います。
これが私がしたことです
GetGlobalResourceObject メソッドをモックすることができ、必要な文字列を送信できます
Resources.resx ファイルをリンクとして UnitTests プロジェクトに追加しました
リンクのプロパティを編集しました:
- ビルド アクション: 埋め込みリソース
- 出力ディレクトリにコピー: コピーしないでください
- カスタム ツール: GlobalResourceProxyGenerator
実際には、次を使用して文字列を取得できます。
Resources.stringName
しかし、元の resx ファイル (WebUI プロジェクトのファイル) に新しい文字列を追加すると、すべてが壊れて、ソリューションを構築できなくなります。
リンクは元のファイルを反映するはずではありませんか?