実践・中級問題チェック
問題 35 /40
doctestを実行する場合、【A】と【B】に記述するものはどれか。
sample.py
-------------------------------
"""
a + b を行う関数です
【A】 func(3, 6)
9
"""
def func(a, b):
return a + b
if __name__ == '__main__':
import doctest
doctest.【B】
-------------------------------
選択 1
【A】 >>> 【B】 testfile()
選択 2
【A】 <<< 【B】 testfile()
選択 3
【A】 >>> 【B】 testmod()
選択 4
【A】 <<< 【B】 testmod()
解説
選択肢3が正解です。
doctestは「>>> 」に続けてテストコードを書き、その直下に期待する出力結果を記述します。
doctestを実行する関数はtestmod()です。選択肢1、2のtestfile()は、テキストファイルに記述したテストコードを実行する場合の関数です。
なお、問題文のファイルに対してコマンドラインで「python sample.py」を実行すると、変数「__name__」に「__main__」が代入されます。
問題文のように「if __name__ == '__main__':」と記述すると、if文がTrueになりdoctest.testmod()が確実に実行されます。
(公式書籍 p.366-367)