我有以下代码:
private static void WriteStartupInfo()
{
Settings settings = Settings.Default;
TimeSpan interval = settings.CleanupInterval;
TimeSpan span = settings.ExpiryTimeSpan;
string url = settings.TeamFoundationServerUrl;
StringBuilder sb = new StringBuilder();
sb.Append(String.Format("CleanupInterval:{0}{1}", interval,Environment.NewLine));
sb.Append(String.Format("ExpiryTimeSpan:{0}{1}", span,Environment.NewLine));
sb.Append(String.Format("TeamFoundationServerUrl:{0}{1}", url,Environment.NewLine));
Trace.TraceInformation(sb.ToString());
}
这需要进行测试。我如何对此进行单元测试?
是否像删除跟踪侦听器和添加单元测试跟踪侦听器一样简单?
非常感谢任何帮助。
答案 0 :(得分:2)
这取决于您正在测试的内容。您可以将方法分解为多种方法,以便您可以测试重要的功能。例如,如果要测试构建的字符串,请将其拉入单独的函数中!
private static void WriteStartupInfo()
{
Trace.TraceInformation(GetStartupInfoString());
}
private static String GetStartupInfoString() {
Settings settings = Settings.Default;
TimeSpan interval = settings.CleanupInterval;
TimeSpan span = settings.ExpiryTimeSpan;
string url = settings.TeamFoundationServerUrl;
StringBuilder sb = new StringBuilder();
sb.Append(String.Format("CleanupInterval:{0}{1}", interval,Environment.NewLine));
sb.Append(String.Format("ExpiryTimeSpan:{0}{1}", span,Environment.NewLine));
sb.Append(String.Format("TeamFoundationServerUrl:{0}{1}", url,Environment.NewLine));
return sb.ToString();
}
现在可以独立测试字符串 - 我认为WriteStartupInfo()函数在那时是微不足道的,你不需要测试跟踪功能。
请注意,您可能需要调整方法的范围 - 我没有使用测试私有方法,所以我无法帮助那里。