これを試して:
[TestCase("2012-10-31 10:59:59", 2012, 10, 31, 10, 59, 59)]
[TestCase("2012-10-31 23:59:59", 2012, 10, 31, 23, 59, 59)]
public void ParseExactTest2(string dateTimeString, int year, int month, int day, int hour, int minute, int second)
{
DateTime actual = DateTime.ParseExact(dateTimeString, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None);
DateTime expected = new DateTime(year, month, day, hour, minute, second);
Assert.AreEqual(expected, actual);
}
指摘したように: yyyy は小文字でなければなりません。別の方法として、例外をスローする場合は、TryParseExact の代わりに ParseExact を使用します。ParseExact を使用すると、フレームワークによってスローされた正しい例外を無料で取得できます。おそらくそれをキャッチして、parseexception を innerexception として引数例外をスローしてみてください。