2009-03-26 13 views
0

doctestが好きですが、複雑な引数がある場合は、関数に渡す前に を設定する必要があります。実際には読みにくくなります。 したがって、複数の行を使用して、 関数を呼び出すことから始めますテストは...このアプローチしかし、あなたではなく、あなたが持っている テストの実数を複数のテストを持っている レポートが..例があり、上記のスニペットでは..私は何を意味するかテストと変数の設定を区別できますか?

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

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

を説明しますされます1つのテストだけで、もう1つは 変数割り当てですが、これは報告されたものです。

 
    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. 

私は確かに、私は何かが欠けている、文書化のフラグを見てきました。..

答えて

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が個々のテストをどのように解釈するかについては、hereを参照してください。

+0

いいえ。貼り付けたものを私のファイルにコピーしました。この関数は何も返さないので、テストは今失敗します。あなたは "..."の後に新しい行が必要です..私は思います!とにかくポインタのおかげで:) – emb

+0

申し訳ありませんが、私はそれを追加することを忘れました。別の "..."行を追加すると、それが終了します。 –

+0

あなたはまだ改行を必要としません:)恐ろしく恐ろしい間違ったことをしていない限り。確認しますか? – emb

関連する問題