你可以区分一个测试&变量设定?

时间:2009-03-26 00:52:52

标签: python unit-testing doctest

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

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

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

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

    Trying:
       y = (2, 3, 5, 7)
    Expecting nothing
    ok
    Trying:
       returnme(y)
    Expecting:
       (2, 3, 5, 7)
    ok
    
    2 tests in 2 items.
    2 passed and 0 failed.

我看过记录的旗帜,肯定是我错过了什么......

1 个答案:

答案 0 :(得分: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如何解释单个测试的更多信息here