読者です 読者をやめる 読者になる 読者になる

牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

三倍の関数でdoctestを試してみた

Python

Jythonプログラミング』でPythonにdoctestというものがあることを初めて知ったけど、理解しないまま放置していたのでとりあえずやってみた


こちらのサイトを参考にした

とりあえず普通に実行してみる

数値を三倍にする関数

def triple(x):
    return x * 3
print triple(10)

結果

30

至って普通の結果


doctestを使ってみる

三倍にする関数に『10』をいれると『30』であってる?のテスト
Pythonの対話式インタプリタの表示のような記述をすればよいみたい?)

def triple(x):
    """
    the triple function
    >>> triple(10)
    30
    """
    return x * 3
import doctest
doctest.testmod()

結果

*** DocTestRunner.merge: '__main__.triple' in both testers; summing outcomes.
*** DocTestRunner.merge: '__main__' in both testers; summing outcomes.

何が起きたのかよくわからん(´・ω・`)
数値が正しいから、何も起こらないのかも?

よくわからないので間違った処理をしてみる

三倍にする関数に『10』をいれると『1000』であってる?のテスト

def triple(x):
    """
    the triple function (misestimate)
    >>> triple(10)
    1000
    """
    return x * 3
import doctest
doctest.testmod()
**********************************************************************
File "__main__", line 4, in __main__.triple
Failed example:
    triple(10)
Expected:
    1000
Got:
    30
**********************************************************************
1 items had failures:
   1 of   1 in __main__.triple
***Test Failed*** 1 failures.
*** DocTestRunner.merge: '__main__.triple' in both testers; summing outcomes.
*** DocTestRunner.merge: '__main__' in both testers; summing outcomes.

怒られた。
「『1000』じゃねぇだろ『30』だろ(#゚Д゚)ゴラァ」って数値にツッコミいれられた(||゚Д゚)
すごいねこれ。