これに従おうとしています: http://msdn.microsoft.com/en-us/library/21a15yht.aspxこの例の問題は、ビジュアルスタジオユーザーとコマンドラインユーザー向けの指示が混在していることですが、私は最善を尽くしましたVS の指示のみに従います。
だから私は: と呼ばれるビジュアル スタジオで新しいユニット テスト プロジェクトを作成しましたExample
。
というリソースを追加し、Greeting.en-US.resx
この中に文字列を入れましたHelloString
。
編集文字列と呼ばれる別のデフォルトのリソースファイルを追加しましたGreeting.resx
が、「Hello(デフォルト)」です
私の単体テスト:
using System.Globalization;
using System.Resources;
using System.Threading;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Example
{
[TestClass]
public class GreetingTests
{
[TestMethod]
public void Hello()
{
var newCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = newCulture;
Thread.CurrentThread.CurrentUICulture = newCulture;
var rm = new ResourceManager("Example.Greeting",
typeof (GreetingTests).Assembly);
Assert.AreEqual("Hello (US)", rm.GetString("HelloString"));
}
}
}
今ではデフォルトのみをロードします
Assert.AreEqual failed. Expected:<Hello (US)>. Actual:<Hello (Default)>.
同じコードがコンソール アプリでも問題なく機能します。