ホームページ  >  記事  >  バックエンド開発  >  Python 3.x でドキュメント テストに doctest モジュールを使用する方法

Python 3.x でドキュメント テストに doctest モジュールを使用する方法

王林
王林オリジナル
2023-07-30 17:03:20920ブラウズ

Python 3.x

でドキュメント テストに doctest モジュールを使用する方法 はじめに:
コードを記述するプロセスでは、関数の使用法と予想される出力を説明するドキュメントを作成する必要があることがよくあります。またはクラス。ただし、ドキュメントは簡単に古くなったり不正確になったりする可能性があり、予期せぬ結果や誤った結果につながる可能性があります。この問題を解決するために、Python には組み込みモジュール doctest が用意されています。これを使用すると、サンプル コードを docstring に記述し、実行時に期待した結果を満たすかどうかを確認できます。

1. doctest モジュールの概要
doctest モジュールは、コード例をテストするためのシンプルで信頼性の高い方法を提供する Python の組み込みモジュールです。これは、docstring で指定されたサンプル コードを実行し、その出力が予想される出力と一致することを確認することによって行われます。 doctest は、ドキュメントの作成とテストの作成を 1 つに結合し、テストの保守を容易にします。

2. doctest の書き方
doctest を記述するときは、モジュール、関数、またはメソッドのドキュメント文字列にサンプル コードを記述し、その後で >>&gt を使用する必要があります。期待される結果 ; タグは、サンプル コードと期待される出力を示します。たとえば、次の例:

def add(a, b):
    """
    计算两个数的和
    
    示例:
    >>> add(2, 3)
    5
    
    >>> add(10, 5)
    15
    """
    return a + b

3. doctest の実行方法
doctest モジュールが提供する testmod() 関数を使用して、doctest を実行できます。この関数は、モジュール内の docstring を自動的に検索し、そこでサンプル コードを実行し、それを予期される出力と比較します。

import doctest

doctest.testmod()

4. 実行結果
doctest の実行後、すべてのサンプル コードの出力が期待される出力と一致する場合、出力は空になりますが、いずれかのサンプル コードの出力が期待される出力と一致しない場合は、エラー情報が出力されます。

サンプル コードを実行した結果は次のとおりです:

**********************************************************************
File "example.py", line 5, in __main__.add
Failed example:
    add(2, 3)
Expected:
    5
Got:
    6
**********************************************************************
File "example.py", line 9, in __main__.add
Failed example:
    add(10, 5)
Expected:
    15
Got:
    16
**********************************************************************
1 items had failures:
   2 of   2 in __main__.add
***Test Failed*** 2 failures.

この例では、2 つのテスト ケース (add(2, 3)) があることがわかります。 andadd(10, 5)) の結果が予期した出力と一致しないため、doctest は 2 つの失敗を報告します。

5. doctest を拡張する方法
単純なサンプル コードと予想される出力に加えて、doctest はより高度なテスト方法もサポートしています。たとえば、... を使用して複数行の出力を表したり、# を使用してコメントなどを表すことができます。次に、より複雑な例を示します。

def average(numbers):
    """
    计算列表中数字的平均值
    
    示例:
    >>> average([1, 2, 3, 4, 5])
    3
    
    >>> average([10, 20, 30])
    20
    
    >>> average([])
    0
    
    >>> average([1, 2, 3, 4, 5, ...])
    3
    """
    if len(numbers) == 0:
        return 0
    return sum(numbers) / len(numbers)

この例では、... を使用して複数行の出力を表します。最後の例では、... を使用して次のことを示します。リストの後にさらに要素があることはわかりますが、それが何であるかは関係ありません。

6. 結論
この記事では、Python 3.x でのドキュメント テストに doctest モジュールを使用する方法を紹介します。これは、明確で正確なドキュメントを作成し、自動テストを通じてドキュメントの正しさを検証するのに役立ちます。テスト ケースを作成することで、関数やクラスがどのように使用されるかをより深く理解し、それらが期待どおりに動作することを確認できます。

doctest モジュールを合理的に使用することで、コードの品質と保守性を大幅に向上させることができます。コードを記述するときは、関数とクラスの docstring を記述し、その中にテスト ケースを記述することをお勧めします。これにより、コードの健全性が保たれ、他の人がドキュメントを読むときに役立つサンプル コードが提供されます。

以上がPython 3.x でドキュメント テストに doctest モジュールを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。