私はコマンドライン引数を受け付けるモジュールのunittestを書いています。私はモジュールでoptparseを使ってargsを受け入れました。あるpythonモジュールから別のpythonモジュールにコマンドライン引数を渡す方法
私が直接モジュールを実行するときだから、僕は入力します。 -
module.py -e 42 -g 84
これまでのところ、私のユニットテストでは、私は単に、特定のメソッド呼び出してテストするモジュールのインスタンスを作成します -
instance = module.className()
instance.method()
を
unittestのような別のモジュールからcommand.py argsをmodule.pyに渡す方法を教えてもらえますか?
私のunittestでoptparseを使用していますが、何とかmodule.pyのインスタンスを生成するときに組み込みますか?
ありがとうございます。
なぜモジュールのコマンドラインインターフェイスをテストする必要があると思いますか? optparseのテストはあなたの仕事ではなく、あなたのフラグを指定するときに間違って行うことはほとんどありません。また、アプリケーション全体をエントリポイントから終了値まで実行すると、単体テストではありません。 – delnan
@delnan返事をありがとう。申し訳ありませんが、私はまったくフォローしません。私はoptparseをテストしようとはしていないので、unittestから特定のフラグ値をモジュールに渡す方法を知りたいので、コマンドラインから呼び出されたかのように効果的にモジュールをテストします。モジュールは、コマンドライン値を操作する必要があります。 – user788462
コードをテストする場合は、コマンドライン引数を指定してコードをテストし、コードをテストするのではなく、コードをテストします。これは簡単で詳細な情報を提供します。たとえば、結果を計算する際に役割を果たす関数が2つある場合は、それぞれを個別にテストします。または、少なくともそれを単体テストと呼ぶのをやめてください。 – delnan