最初は簡単に説明し、最後に詳細を説明します。次のコードを検討してください。
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
カルチャを指定せずに呼び出すコード本体があります。私の懸念は、このコードがインバリアントまたは en-US カルチャで日付を渡されると、一部のカルチャでコードが失敗する可能性があることでした。私が提案した解決策は、そのコードを使用するように変更することでした
DateTime.Parse(string, CultureInfo.InvariantCulture)
これらの場合。
変更を単体テストするには、元のDateTime.Parse(string)
コードを失敗させるカルチャを使用して新しいコードを呼び出し、変更されたコードが成功することを示す必要があります。
問題は、これをやってくれる文化がまだ見つかっていないことです。製造してみますが、もっと一般的な質問を先にしようと思いました。