C#: 最佳实践 Debug.Print

5

关于Debug.Print语句,最佳实践是什么?

我应该在类方法中使用Debug.Print语句,还是应该完全避免使用Debug.Print

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

在单元测试中,Debug.Print语句是否必要?我能否通过编写良好的单元测试来避免使用Debug.Print语句?

3个回答

5

Debug.Print是可以接受的,尤其是因为在您的发布版本中,它们将被编译清除。但是,“散落”在代码中并不特别有生产力或有用。

您可以在调试特定代码区域时添加它。一旦确定了缺陷,您可以编写一个单元测试来覆盖该情况,修复错误,然后删除对Debug.Print的调用。

我有时会使用并保留在代码库中的是Debug.Assert——如果我的应用程序处于预期状态之外,它就像是内置断点,这只是在进行自动化和手动测试时增加的安全措施。

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


请注意,在“发布版本”中,Debug.Assert语句也会被删除(除非在“发布配置”中添加了DEBUG)。如果您想要在“发布版本”中执行断言,请考虑使用 Trace.Assert - DavidRR

2
您在进行单元测试时完全不需要使用Debug.Print!单元测试的目的是自动获得测试是否成功或失败的指示,您不需要寻找调试输出以获取该信息。 NUnit 是一个易于使用的单元测试库。
至于跟踪或日志记录,您也不需要在代码中大量添加调试输出。可以尝试使用Castle Windsor拦截器或其他支持AOP的框架。

0

我从未使用过Debug.Print或Trace.Print。我写了很多单元测试。我从未发现需要在编写的单元测试中使用Debug或Trace对象。但是,我尽可能地进行单元测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接