2017-01-18 14 views
3

Pythonでテストスクリプトの説明を与えるのにベストプラクティスは何ですか?Python unittestフレームワーク:テストの説明

明らかに私はコメントをテストケースの下に置くことができますが、テストケースの説明を提供するための標準的なプラクティス(私が書くべき方法)があるかどうかを知りたがっています行う)?

は、あなたが任意の提案/参照が認識されるテストの説明?:

Class TestFoo: 
    def testfoo1(): 
    """ 
    test description: 
    step1: 
    step2: 
    """ 

を置くだろうか、このです。 unittestフレームワークで

答えて

3

、あなたは shortDecription方法があります。

shortDescription()

を何ら説明が提供されていない場合Noneテストの説明を返し、または。このメソッドのデフォルト実装では、テストメソッドのdocstringの最初の行が利用可能であれば返します。

実際、docstringメソッドを使用するのは良い場所です。あなたはクラスの宣言でTestCaseから継承しなければならないかもしれませんが、ランナーはそのように動作します。 については

のベストプラクティス:開発者は、何かが間違っている場合のハイレベルのアイデアを持っているため、テストケース(クラス)と十分です簡潔かつ便利ファッションのテストメソッドに名前を付け、その特定すべきですテストは失敗します。これの前提条件は、それぞれのテストメソッドは、異なるものの全体の束を主張するのではなく、1つのことをテストするだけでよいということです。

分かりやすいテスト名では、通常、「テストケースが何をするべきかに関する詳細な情報」を持つドキュメントストリングは必要ありません。多くのことをチェックする既存の大規模なテストがある場合は、それぞれを1つの個別のものだけを主張する小さなテストの束に分割することができます。

+0

私は前に 'shortDescription'に気付かなかった。ドキュメントには少し光があります。具体的には、どのテストが記述を記述するかを知るために何らかの方法が必要なようです... – mgilson

+0

これはインスタンス上の可変状態です( 'TestCase'はクラス) – wim

+0

基本メソッドの[実装](https://hg.python.org/cpython/file/2.7/Lib/unittest/case.py#l253)は、いくつかの状態ベースの実装の詳細に依存しています何を返すかを理解する。私は実際にどのようにユーザーが便利な方法でそのメソッドをオーバーライドする必要があるのか​​分かりません... – mgilson

3

テストメソッドdocstringは、Pythonのunittestモジュールを使用している場合、その情報を格納する標準的な場所です。 unittestは、その書類文字列を使用して出力などの書式を設定します。

2

クラスの名前は説明が必要でないほど記述的であることが最善の方法です。

これを除いて、docstringは最善の方法です。

関連する問題