2016-03-25 14 views
0

私のコードに渡されるオプション/引数と期待される結果をテストしたい。私はこれらの引数を受け入れるためにOptparseを使用しています。今、私は、引数が不足していたときに私がテストしていたコードは、単にテスト用テストケースOptparse不良/不足引数

parser.error("Some message")

を実行したり私が悪いの引数を渡された場合。

不正な引数が入力されました。これをどうすればテストできますか?どの方法をunittest.TestCaseに入れてparser.error()が発生したと主張するのですか?

+1

[*」のいずれかの場合には、 'optparse'はエラーを同じように処理します。それが標準エラーして終了するプログラムの使用方法のメッセージとエラーメッセージを出力しますエラーステータス2 "。*(https://docs.python.org/2/library/optparse.html#how-optparse-handles-errors) - おそらく、これをテストすることはできません。テスト対象のコードPythonを終了します。 – jonrsharpe

+0

トピックから部分的に外した(optparseを使用していない)が、 'click.testing import CliRunner'を提供する' click'パッケージを使用しています。これは、コマンドを呼び出して結果を評価するために使用できます。 [click.testing docs](http://click.pocoo.org/5/testing/)の詳細 –

答えて

0

あなたはモックモジュール上の注意を払う必要があります:

import mock 
import unittest 


class TestCase(unittest.TestCase): 

    def test_parser(self): 
     with mock.patch('path.to.your.function') as error_mock: 
      call_your_code() 
      self.assertEqual(error_mock.called, True) 
関連する問題