我有一个简单的python socket game,它有服务器和客户端脚本。我使用unittest
模块(测试抽象游戏逻辑)提供单元测试,现在我想提供功能测试(测试真正的套接字游戏运行时)。
从python代码,我想首先运行服务器然后运行客户端。这些使用raw_input
(py2.7)函数,因此我需要将一些信息传递给这些脚本(使用raw_input
从控制台读取每个游戏移动。)
如何在python / unittest中执行此操作?我的意思是 - 如何运行外部脚本并将控制台输入传递给它们 - 来自python代码?
答案 0 :(得分:1)
你只需要模拟raw_input。使用mock library或只是自己嘲笑 - 可以更简单,例如:
def ri_mock(fle_name='nac_input.txt'):
with open(fle_name) as fp:
for ln in fp:
yield ln
gen = ri_mock()
raw_input = gen.next
但是,由于您要在单元测试中使用它,我宁愿使用字符串而不是从外部文件中读取数据。