0

私はdoctestが好きですが、関数に渡す前に設定する必要がある複雑な引数があると、非常に読みにくくなります..したがって、テストしたい関数を割り当ててから呼び出す複数の行を使用し始めます..このアプローチただし、テストの実際の数ではなく、複数のテストがあることを報告します.例は、私が何を意味するかを説明します..

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

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

上記のスニペットでは、テストは 1 つだけで、もう 1 つは単なる変数の割り当てですが、これが報告される内容です。

    しようとしている:
       y = (2, 3, 5, 7)
    何も期待しない
    わかった
    しようとしている:
       returnme(y)
    期待:
       (2、3、5、7)
    わかった
    
    2項目で2テスト。
    2人合格、0人不合格。

文書化されたフラグを見てきましたが、確かに何かが欠けています..

4

1 に答える 1

5

次のように、現在の行を継続することを示すために、先頭に 3 つのピリオドを追加します。

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 に答える