0

我喜欢 doctest,但是当您在传递给函数之前需要设置复杂的参数时,它变得非常难以阅读。因此,您开始使用多行分配然后调用您想要测试的函数。这种方法但是,将报告您有多个测试,而不是您拥有的实际测试数量.. 一个例子将说明我的意思..

def returnme(x):
   """
   Returns what you pass

   >>> y = (2, 3, 5, 7)
   >>> returnme(y)
   (2, 3, 5, 7)
   """
   return x

在上面的代码片段中,只有一个测试,另一个只是一个变量赋值,但是,这就是报告的内容..

    试:
       y = (2, 3, 5, 7)
    什么都不期待
    好的
    试:
       返回我(y)
    期待:
       (2, 3, 5, 7)
    好的
    
    2 个项目中的 2 个测试。
    2 次通过,0 次失败。

我查看了记录的标志,当然我错过了一些东西..

4

1 回答 1

5

在前面添加三个句点以指示您要继续当前行,如下所示:

def returnme(x):
   """
   Returns what you pass

   >>> y = (2, 3, 5, 7)
   ... returnme(y)        # Note the difference here.
   ...                    # Another blank line ends this test.
   (2, 3, 5, 7)
   """
   return x

这应该够了吧。您可以在此处阅读有关 doctest 如何解释各个测试的更多信息。

于 2009-03-26T00:58:42.190 回答