我有一個單元測試TimeSpan
,我不知道我是否做得對。C#單元測試斷言日期時間
測試用例:
/// <summary>
/// Wrapper around TimeSpan.TryParse that avoids out parameters.
/// Tries to parse a string as a TimeSpan and returns the parsed value as a TimeSpan or null if parsing failed.
/// </summary>
/// <param name="toParse">A string containing a value to convert</param>
/// <param name="formatProvider">An object that provides culture-specific formatting information</param>
/// <returns>The value parsed as a TimeSpan or null if parsing failed</returns>
public static TimeSpan? ParseTimeSpan(this string toParse, IFormatProvider formatProvider)
{
TimeSpan value;
if (TimeSpan.TryParse(toParse, formatProvider, out value))
{
return value;
}
return null;
}
單位測試:
[TestMethod()]
public void ParseTimeSpanTest()
{
Assert.AreEqual(ParseTime("5:33 pm"), "5:33".ParseTimeSpan(CultureInfo.InvariantCulture));
Assert.AreEqual(ParseTime("9:22 AM"), "9:22 AM".ParseTimeSpan(CultureInfo.InvariantCulture));
Assert.AreEqual(ParseTime("8:22 pm"), "8:22 pm".ParseTimeSpan(CultureInfo.InvariantCulture));
Assert.AreEqual(ParseTime("7:22:44 AM"), "7:22:44 AM".ParseTimeSpan(CultureInfo.InvariantCulture));
Assert.AreEqual(ParseTime("9:22:44 pm"), "9:22:44 pm".ParseTimeSpan(CultureInfo.InvariantCulture));
Assert.AreEqual(ParseTime("13:22:14"), "13:22:14".ParseTimeSpan(CultureInfo.InvariantCulture));
Assert.AreEqual(ParseTime("23:59:00"), "23:59:00".ParseTimeSpan(CultureInfo.InvariantCulture));
Assert.AreEqual(null, "25:59:00".ParseTimeSpan(CultureInfo.InvariantCulture));
Assert.AreEqual(null, "23:70:00 ".ParseTimeSpan(CultureInfo.InvariantCulture));
Assert.AreEqual(null, "23:59:75".ParseTimeSpan(CultureInfo.InvariantCulture));
Assert.AreEqual(null, "five thirty".ParseTimeSpan(CultureInfo.InvariantCulture));
}
private static DateTime ParseTime(string time)
{
return DateTime.Parse(time, System.Globalization.CultureInfo.InvariantCulture);
}
它是否做你認爲應該做的事?我們不可能知道你期望什麼,因此它是否給你預期的結果。 – LordWilmore
我不明白爲什麼你需要UnitTest。你的方法基本上和TryParse一樣。 – greenhoorn
我第一次編寫單元測試,所以即時通訊它應該做上面解釋「試圖解析一個字符串作爲時間跨度,並返回解析值作爲時間跨度或空,如果失敗」 – Dnguy025