我有以下代码:
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());
}这需要进行测试。我该如何对其进行单元测试?
是否像删除跟踪侦听器和添加单元测试跟踪侦听器一样简单?
任何帮助都将不胜感激。
发布于 2008-10-31 14:13:15
这取决于您正在测试的是什么。您可以将该方法分解为几个方法,以便测试重要的功能。例如,如果您想测试构建的字符串,请将其放入一个单独的函数中!
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()函数在这一点上是微不足道的,并且您不需要测试跟踪功能。
请注意,您可能需要调整方法的作用域--我没有使用过测试私有方法,因此在这方面我无能为力。
https://stackoverflow.com/questions/253621
复制相似问题