私は現在、Python(3.1)を使用して小さなアプリケーションを作成しています。そして、いい子のように、ドキュメントテストを行っています。しかし、私はドクテストできないように見える方法に出くわしました。が含まれてinput()
いるため、doctestの「期待する」部分に何を配置するかが完全にはわかりません。
私の問題を説明するためのサンプルコードは次のとおりです。
"""
>>> getFiveNums()
Howdy. Please enter five numbers, hit <enter> after each one
Please type in a number:
Please type in a number:
Please type in a number:
Please type in a number:
Please type in a number:
"""
import doctest
numbers = list()
# stores 5 user-entered numbers (strings, for now) in a list
def getFiveNums():
print("Howdy. Please enter five numbers, hit <enter> after each one")
for i in range(5):
newNum = input("Please type in a number:")
numbers.append(newNum)
print("Here are your numbers: ", numbers)
if __name__ == "__main__":
doctest.testmod(verbose=True)
doctestsを実行すると、「Expecting」セクションを出力した直後にプログラムの実行が停止し、5つの数字が次々に入力されるのを待って(プロンプトなしで)、続行します。以下に示すように:
doctestのExpectingセクションに何を配置して、ユーザー入力を受け取って表示するメソッドをテストできるかはわかりません。だから私の質問は(最後に)、この関数は検証可能ですか?