为什么没有C#相当于python的doctest功能?

zum*_*ard 5 .net c# python doctest unit-testing

似乎这是一个介绍一些人进行单元测试的好方法.

Jon*_*eet 6

一方面,doctest文档讨论了"交互式Python会话".在C#中没有相同的...那么输出如何表示?您将如何执行所有必要的设置?

我敢说这样的事情是可能的,但我个人认为,至少对于C#来说,将单元测试作为单元测试更清楚,你可以从中获得编写代码而不是注释这一事实的所有好处.可以在编译时检查代码的语法正确性,您可以使用IntelliSense,语法突出显示,调试器支持等.

如果您正在编写代码,为什么不将其表示为代码?无可否认,在XML文档中包含示例代码是相当普遍的,但这很少以测试的形式出现 - 如果没有等效的"交互式会话",则需要一个人工构造来以可测试的形式表示输出.

我不是说这是Python中的一个不好的功能 - 只是因为我不相信映射到C#的特别好.语言有自己的风格,并不是语言X中的每个特征都在语言Y中有意义.

  • C#有几个交互式shell,其中最好的是Mono的[C#REPL](http://www.mono-project.com/CsharpRepl).但我认为你可能会错过doctest的观点.它不能替代主*代码*的单元测试.相反,它是(单元)测试*文档*的方式.IE它会验证文档中的示例代码是否符合它所说的内容.该示例代码应该采用有助于向读者澄清的形式,而不是以测试的形式. (6认同)