Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么会有';s不是python的C等价物';什么是博士学位?_C#_.net_Python_Unit Testing_Doctest - Fatal编程技术网

C# 为什么会有';s不是python的C等价物';什么是博士学位?

C# 为什么会有';s不是python的C等价物';什么是博士学位?,c#,.net,python,unit-testing,doctest,C#,.net,Python,Unit Testing,Doctest,似乎这将是一个向一些人介绍单元测试的好方法。首先,关于“交互式Python会话”的讨论。在C#中没有类似的东西。。。那么,输出将如何表示?您将如何执行所有必要的设置 我敢说这样的事情是可能的,但我个人认为,至少对于C#,将单元测试作为单元测试更为清晰,这样您就拥有了编写代码而不是注释的所有好处。可以在编译时检查代码的语法正确性,您可以使用IntelliSense、语法突出显示、调试器支持等 如果您正在编写代码,为什么不将其表示为代码?诚然,在XML文档中包含示例代码是相当常见的,但这很少以测试的

似乎这将是一个向一些人介绍单元测试的好方法。

首先,关于“交互式Python会话”的讨论。在C#中没有类似的东西。。。那么,输出将如何表示?您将如何执行所有必要的设置

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

如果您正在编写代码,为什么不将其表示为代码?诚然,在XML文档中包含示例代码是相当常见的,但这很少以测试的形式出现——如果没有“交互式会话”的等价物,则需要一个人工构造以可测试的形式表示输出


我并不是说这在Python中是一个不好的特性——只是我不认为它能很好地映射到C。语言有自己的风格,并且不是语言X中的所有功能在语言Y中都有意义。

C#有几个交互式shell,其中最好的是Mono。但我想你可能没有抓住博士考试的重点。它不能代替对主代码进行单元测试。相反,它是(单元)测试文档的方法。也就是说,它验证文档中的示例代码是否按照它所说的那样执行。此示例代码的形式应该有助于向读者澄清,而不是以测试的形式。
doctest
还可用于主代码的一般测试。但是正如文档警告的那样,“用模糊的测试用例填充docstring会导致糟糕的文档”,所以它建议区分这两个目的。@Matthew:仅仅因为存在交互shell的实现并不意味着C本身就有一个定义的交互shell行为。我不愿意在评论中看到特定于实现的语法。至于我是否误解了这个问题:OP建议这将是一个很好的方法,可以将某人引入单元测试。我认为引入单元测试的一个更好的方法是编写一些实际的单元测试。@Jon,我同意可移植性问题是有效的。然而,已经有多个特定于实现的文档语法(NDoc、Sandcastle等),当然人们使用的库不是标准的一部分。再看看这个问题,你可能是对的,OP想要一个C#
doctest
来进行一般的单元测试(而不是对文档进行单元测试)。他可以更好地解释他的预期用例是什么。@Matthew:NDoc和Sandcastle都使用标准XML文档注释构建文档。输出是样式化的,但输入是相同的-您可以对两者使用相同的源。可能有特定的扩展,但您不必使用它们。如果没有任何标准的REPL格式,我认为doctest不会处于类似的位置。我确实看到了能够测试文档示例的好处,但我怀疑C#增加的复杂性不值得(而Python提供了更自然的适合性)。我相信这可能是doctest.net.和GWT.net的一项支持技术我编写了一个工具doctest csharp,将doctest从C#结构化注释提取到单元测试()中。根据我(非常主观)的经验,它非常接近Python的doctests。另见。