『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』だろ(#゚Д゚)ゴラァ」って数値にツッコミいれられた(||゚Д゚)
すごいねこれ。