首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重构traceListener代码,以便对其进行单元测试

重构traceListener代码,以便对其进行单元测试
EN

Stack Overflow用户
提问于 2008-10-31 14:06:59
回答 1查看 539关注 0票数 1

我有以下代码:

代码语言:javascript
运行
复制
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());
    }

这需要进行测试。我该如何对其进行单元测试?

是否像删除跟踪侦听器和添加单元测试跟踪侦听器一样简单?

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2008-10-31 14:13:15

这取决于您正在测试的是什么。您可以将该方法分解为几个方法,以便测试重要的功能。例如,如果您想测试构建的字符串,请将其放入一个单独的函数中!

代码语言:javascript
运行
复制
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()函数在这一点上是微不足道的,并且您不需要测试跟踪功能。

请注意,您可能需要调整方法的作用域--我没有使用过测试私有方法,因此在这方面我无能为力。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/253621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档