我会简短地开始,然后在最后给出细节。考虑以下代码:
CultureInfo cultureToTest = new CultureInfo("hu-HU");
Thread.CurrentThread.CurrentCulture = cultureToTest;
DateTime testDateTime = new DateTime(2014,12,13,23,24,25);
String testString = testDateTime.ToString(CultureInfo.InvariantCulture);
DateTime actualDateTime = DateTime.Parse(testString);
问题是是否有任何可能的值cultureToTest
会导致DateTime.Parse
调用抛出异常或返回错误的值?
语境:
这是一组单元测试。有一段代码在DateTime.Parse
没有指定文化的情况下调用。我担心的是,当此代码在 Invariant 或 en-US 文化中传递一个日期时,该代码可能会在某些文化中失败。我提出的解决方案是更改要使用的代码
DateTime.Parse(string, CultureInfo.InvariantCulture)
在这些情况下。
为了对更改进行单元测试,我需要使用会使原始DateTime.Parse(string)
代码失败的文化来调用新代码,然后显示更改后的代码将成功。
问题是我还没有找到一种文化可以为我做到这一点。我将尝试制造一个,但我想我会先问更一般的问题。