2017-07-27 9 views
-1

Python 3.6の例外処理とテストケースとともに2つの数値を分割するプログラムを作成するにはどうすればよいですか?私はそれが 'doctest'をインポートすることによって行うことができることを読んだ。Doctestを使用したPythonのテストケース

+0

の問題のあなたのコードを共有してください。 –

+0

3つのことが必要です1)2つの数字を分割するコード2)Pythonで例外処理3)上記コードのユニットテストケースを書く –

+0

ユニットテストケースは、unittest、pytest、doctestモジュールを使用して記述できます。 –

答えて

0

DoctestはPythonプログラミング言語の標準ライブラリに含まれているモジュールで、標準のPythonインタプリタシェルの出力に基づいてテストを簡単に生成し、切り取ってdoc-stringに貼り付けることができます。

あなたはあなたのようなコードを書くことができます。

divide.py

def divide(a, b): 
    """ 
    >>> divide(8, 4) 
    2 
    >>> divide(-12, 3) 
    -4 
    >>> divide(4, 0) 
    "Denominator can't be zero" 
    """ 
    try: 
     result = a//b 
    except ZeroDivisionError: 
     result = "Denominator can't be zero" 

    return result 

各 '>>>' 行は、Pythonシェルにいるかのように実行し、テストとしてカウントされます。 次の行は、前の行の期待される出力ではなく、 '>>>'でなければなりません。 何かが正確に一致しない場合(末尾のスペースを含む)、テストは失敗します。

実行doctestの

あなたは(ターミナルでコマンドを書く)このようにdoctestを実行します。

$ python3 -m doctest -v doctest_trial.py、または単に

$ python3 -m doctest doctest_trial.py

+0

https://i.stack.imgur.com/IuVBF.jpgこれは私のコードです。私はこれがうまく動作しているので、これが適切な実装であることを望みます。唯一の問題は、関数の外側にテストケースを記述したことです。 –

+1

さて、 'tests'は関数内に記述する必要があります。 また、答えは 'doctest'を使うもう一つの方法です。私は一般的にこの方法を好む。コードを読み込むのではなく、スクリプトを実行しているときにシェルで使用することができます。 –

関連する問題