你可以mock提示電話。
app_file
from prompt_toolkit import prompt
def word():
result = prompt('type a word')
return result
test_app_file
import unittest
from app import word
from mock import patch
class TestAnswer(unittest.TestCase):
def test_yes(self):
with patch('app.prompt', return_value='Python') as prompt:
self.assertEqual(word(), 'Python')
prompt.assert_called_once_with('type a word')
if __name__ == '__main__':
unittest.main()
只是一個關注點,你應該嘲笑從app.py的提示,而不是從prompt_toolkit,因爲你想攔截來自文件的呼叫。
與docstring module據:
如果您正在使用該庫從用戶(作爲 純Python替代GNU的readline)檢索某些輸入,可能是用例的90%, :func:.prompt
功能就是你所需要的。
而且爲method docstring說:
獲取用戶輸入並將其返回。 這是一個圍繞很多prompt_toolkit
功能的包裝,可以替代raw_input
。 (或GNU的readline。)
繼Getting started從項目:
>>> from prompt_toolkit import prompt
>>> answer = prompt('Give me some input: ')
Give me some input: Hello World
>>> print(answer)
'Hello World'
>>> type(answer)
<class 'str'>
由於prompt
方法返回一個字符串類型,你可以使用mock.return_value
來模擬你的應用程序用戶的整合。