2

我正在开发 Silverlight 应用程序,但遇到了一个与单元测试相关的问题。这个单元测试的目的是测试本地化。

默认文化是英语,我想测试法国文化。我尝试设置文化和 UI 文化以及 DeploymentItem 属性。但没有成功。

这是我的测试

using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class SampleTest
{

   [TestMethod]
   [DeploymentItem(@"Bin\fr", "fr")]
   public void Test Method()
   {
            SetSpecificCurture(false);
            string test = EngineAnomaliesViewStrings.Identifier;
            Note: [EngineAnomaliesViewStrings is my resource file]  

            Assert.AreEqual("Some French Test", test);   
   }

   private void setSpecificCurture(Boolean isUkLable)
        {
            CurrentUserLogged.Details.IsUKLanguage = isUkLable;

            string culture = isUkLable ? "en" : "fr";
            string dateFormat = isUkLable ? "MM/dd/yyyy" : "dd/MM/yyyy";
            Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(culture);
            Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(culture);
            Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = dateFormat;
            Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern = dateFormat;

        }

即使通过设置 FR 文化,始终获得英语价值观。

任何人都可以有一个想法来解决这个问题吗?

谢谢,马赫什。

4

1 回答 1

0

马赫什,

只是为了让其他人知道我们是如何解决这个问题的。正如我们所发现的,解决方案是在 Silverlight UnitTest 项目的 AppMenifest.xml 文件的 Deployment.Parts 节点内添加一个 AssemblyPart。(UnitTest项目xap文件默认不包含fr资源文件)

<AssemblyPart Source="fr/MyProject.resources.dll" />

谢谢。

达克斯

于 2012-10-12T01:40:07.887 回答