C#:最佳实践Debug.Print

时间:2011-01-05 19:34:43

标签: c# unit-testing debugging trace

关于Debug.Print声明的最佳做法是什么?

我应该使用Debug.Print语句丢弃我的课程方法,还是应该完全避免使用Debug.Print

如果Debug.Print语句可以接受,我应该考虑使用Trace.Print还是EventLog

单元测试需要Debug.Print个语句吗?我可以通过精心编写的单元测试来避免Debug.Print语句吗?

3 个答案:

答案 0 :(得分:5)

Debug.Print是可以接受的,尤其是因为它们将在您的发布版本中编译出来。然而,使用它“乱丢”代码听起来并不是特别有效或有用。

您可以在调试特定代码区域时添加它。识别出缺陷后,您可以编写单元测试来覆盖案例,修复错误,然后删除对Debug.Print的调用。

我有时使用并留在代码库中的是Debug.Assert - 如果我的应用程序不处于预期状态,它就像一个内置断点,这只是一个额外的安全网,同时自动执行和手动测试。

Debug.Print在单元测试中不是必需的,不应为了单元测试而添加。

答案 1 :(得分:2)

单元测试完全不需要Debug.Print!单元测试的重点是您自动获得测试成功或失败的指示,您不需要为此查找调试打印。

NUnit是一个易于使用的单元测试库。

对于跟踪或日志记录,您不需要使用调试打印来丢弃代码。尝试interception with Castle Windsor或其他支持AOP的框架。

答案 2 :(得分:0)

我从未使用过Debug.Print或Trace.Print。我确实写了大量的单元测试。我从来没有发现我需要将Debug或Trace对象与我编写的单元测试一起使用。不过,我确实尝试进行单元测试。