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 に答える