1

我有一个简单的python 套接字游戏,它有服务器和客户端脚本。我已经使用unittest模块提供了单元测试(测试抽象游戏逻辑),现在我想提供功能测试(测试真正的套接字游戏运行时)。

从python代码,我想先运行服务器,然后再运行客户端。这些使用raw_input(py2.7) 函数,所以我需要将一些信息传递给这些脚本(每个游戏动作都是使用从控制台读取的raw_input)。

我怎样才能在 python/unittest 中做到这一点?我的意思是 - 我如何运行外部脚本并将控制台输入传递给它们 - 从 python 代码?

4

1 回答 1

1

你只需要模拟 raw_input。使用模拟库或只是自己模拟它 - 可以更简单,例如:

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

但是,由于您要在单元测试中使用它,我宁愿使用字符串而不是从外部文件中读取数据。

于 2013-08-04T12:54:28.863 回答