8

コマンド ライン引数を受け取り、Tic Tac Toe を 1 回再生する Python スクリプトを作成しました。
実行すると、次のようになります...

ttt を実行 o#xo##x## x 0 1

移動が合法である場合、新しいボード レイアウトと、誰かがゲームに勝ったかどうかを出力します。

unittest を使用してテストを作成する必要があります。さまざまなコマンド ライン パラメータを使用してスクリプト全体をテストする方法がわかりません。私が見たすべての例は、スクリプト内の個々の機能をテストしているように見えます。また、スクリプトはargparseパラメーターの解析に使用します

ありがとう!

4

1 に答える 1

13

主なアクション (argparse を除く) が "main" 関数で発生するように、プログラムをリファクタリングします。

def main(args):
    ...

if __name__ == '__main__':
    args = parse_args()
    main(args)

main次に、との動作のテストを作成できますparse_args

PS。モジュールを使用しsubprocessてプログラムを外部プロセスとして呼び出し、出力を解析することは可能ですが、それは醜く不必要だと思います。

PPS。この方法でプログラムを作成することの追加の利点として、プログラムをモジュールとしてインポートし、そのメイン関数を他のスクリプトで呼び出すことができます。これは、たとえば、ある日そのための GUI を作成したい場合に役立ちます。

于 2012-10-10T01:06:15.360 に答える