开发人员在“十进制逗号”和“小数点”区域设置中使用我们的解决方案。我们使用Visual Studio的内置单元测试引擎。我怎样才能确保测试在两个语言环境中都使用不变文化,而不必在整个地方插入IFormatProviders
?这是为了防止在我们的某个区域设置中使用string.Format
浮点数检查计算结果的所有测试都失败。
答案 0 :(得分:0)
为所有单元测试和设置集线程的当前文化创建公共基类:
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
(基础夹具的常见设置在MSTest和NUnit中都有效)。
如果您的代码可以生成新线程,您还可以set the default culture for new threads(需要.NET 4.5):
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture;