다음을 시도하고 있습니다 : http://msdn.microsoft.com/en-us/library/21a15yht.aspx 예제는 Visual Studio 사용자와 명령 줄 사용자를위한 지침이 혼합되어 있지만 VS 지침 만 따르도록 최선을 다했습니다.간단한 ResourceManager 예제가 단위 테스트 내에서 작동하지 않습니다
그래서 : Example
이라는 비주얼 스튜디오에서 새로운 단위 테스트 프로젝트를 만들었습니다.
Greeting.en-US.resx
이라는 리소스를 추가하고 HelloString
이라는 문자열을 넣었습니다. 이제
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"));
}
}
}
은 오직로드 :
편집 지금 Greeting.resx
캐릭터라는 또 다른 기본 리소스 파일을 추가 한은 "안녕하세요 (기본값)"
이
내 단위 테스트입니다 기본값
Assert.AreEqual failed. Expected:<Hello (US)>. Actual:<Hello (Default)>.
동일한 코드가 Console App에서도 작동합니다.
리소스 파일 이름은 Greetings (복수)이지만 단 하나의 형태로 리소스를 요청합니다 (인사말). 비록 당신의 코드가 콘솔에서 작동한다는 것에 놀랐지 만. 질문에 오타가있을 수 있습니까? – vlad2135
@ vlad2135 예. 오타, 고마워요. – weston