试图遵循这个: http: //msdn.microsoft.com/en-us/library/21a15yht.aspx这个例子的问题是它混合了 Visual Studio 用户和命令行用户的指令,但我已经尽力了仅遵循 VS 说明。
所以我有: 在 Visual Studio 中创建了一个新的单元测试项目,名为Example
.
我添加了一个名为的资源Greeting.en-US.resx
并将一个字符串放入 called HelloString
。
编辑我现在添加了另一个名为Greeting.resx
string 的默认资源文件是“Hello (Default)”
我的单元测试:
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)>.
相同的代码在控制台应用程序中工作得很好。