Python での単体テストのヒント
Python は高水準プログラミング言語であり、学びやすく、理解しやすく、読みやすく、拡張しやすいという特徴により、データ サイエンス、ネットワーク プログラミング、Web 開発で好まれる言語となっています。 、機械学習などの分野で広く使用されています。ただし、単体テストは、どのような種類のアプリケーションを開発するかに関係なく、常に必要なタスクです。
単体テストは、アプリケーション内のコードの最小単位 (「ユニット」と呼ばれます) を検査するソフトウェア テスト手法です。単体テストを実行する目的は、コード ユニットが正しい状況で実行されるかどうかを判断し、例外が発生したときにコード ユニットが例外を適切に処理するかどうかを確認することです。
Python は、Python アプリケーションをテストするための多くのフレームワーク (unittest、nose、pytest など) を提供します。この記事では、Python での単体テストのテクニックをいくつか紹介します。
- 単体テスト フレームワークの使用
単体テストは、Python の組み込み単体テスト フレームワークです。さまざまなテスト ケースとテスト スイートを作成し、それらを自動的に実行できる完全なテスト環境を提供します。 Unittest フレームワークの中心となるのは TestCase クラスです。テスト クラスが TestCase クラスから継承すると、テスト スイートの実行時に自動的に呼び出されるテスト メソッドが含まれます。
これは簡単な単体テストの例です:
import unittest def sum(a, b): return a + b class TestSum(unittest.TestCase): def test_sum(self): self.assertEqual(sum(1, 2), 3, "Sum should return 3") self.assertEqual(sum(0, 0), 0, "Sum should return 0") self.assertEqual(sum(-1, 1), 0, "Sum should return 0") if __name__ == '__main__': unittest.main()
この例では、2 つの数値を加算する sum という関数を定義し、unittest.TestCase のテスト クラスを継承する関数を作成します。には、test_sum メソッドが含まれており、assertEqual ステートメントを使用して、sum 関数が期待どおりに機能するかどうかをテストします。最後に、unittest.main() 関数を呼び出してテスト ケースを実行します。
- モックの使用
単体テストを作成する際の最大の問題の 1 つは、データベース接続、Web サービス、ファイル IO、ネットワーク リクエストなどの依存関係をテストすることです。モック ライブラリを使用すると、これらの依存関係をシミュレートし、テスト用の信頼できる制御環境を提供できます。モック モジュールは、Python オブジェクトの置き換えに使用できるモック クラスを提供します。
これは簡単な模擬例です:
from unittest.mock import MagicMock def test_divide_magicmock(): calculator = Calculator() calculator.divide = MagicMock(return_value=2) assert calculator.divide(8, 4) == 2 calculator.divide.assert_called_once_with(8, 4)
この例では、MagicMock クラスを使用して Calculator クラスの除算メソッドを置き換え、その戻り値が 2 であることを指定します。次に、divide メソッドを呼び出し、正しいパラメータが呼び出され、期待した値が返されることを確認します。
- Coverage.py の使用
Coverage.py は、コード カバレッジを評価するための Python のツールです。これを使用して、テストされていないコード行を特定し、単体テストを作成するときにより多くのテスト ケースを導入できるようにします。 Coverage.py は、Python アプリケーション内のどのコードが実行され、どのコードが実行されないかを判断します。開発者がコード カバレッジをより深く理解し、コード テスト カバレッジに関する詳細な統計を提供する HTML レポートを生成します。
これは Coverage.py の例です:
pip install coverage coverage run my_program.py coverage report -m
この例では、Coverage.py をインストールし、次にカバレッジ実行コマンドを使用して my_program.py スクリプトを実行し、カバレッジ レポートを使用します。カバレッジレポートを生成するコマンド。
- ランダム テスト データの生成
テスト データの量と質は、単体テストの品質にとって非常に重要です。テスト データをより代表的にし、より多くのエッジ ケースをカバーするために、Python の組み込みランダム モジュールを使用してランダム テスト データを生成できます。
これはランダム テスト データ ジェネレーターの例です:
import random def generate_random_data(): return random.randint(1, 100), random.randint(1, 100) class TestSum(unittest.TestCase): def test_sum(self): a, b = generate_random_data() result = sum(a, b) self.assertEqual(result, a + b)
この例では、random モジュールを使用して 2 つのランダムな整数を生成し、sum 関数がそれらの合計を正しく返すかどうかをテストします。 。
- pytest の使用
Pytest は、拡張可能な Python テスト フレームワークです。 pytest は、開発者が効率的な単体テストを作成できるようにする、よりシンプルで柔軟なフレームワークです。次の機能を提供します。
- テスト モジュールとテスト関数を自動的に検出します。
- パラメータ化されたテストをサポートします。
- 失敗したテストの再実行をサポートします。
- 複数のプロセスで実行するテスト ケースをサポートし、テストを高速化し、テスト時間を短縮します
これは、Pytest を使用した単純な Python 単体テスト フレームワークの例です:
pip install pytest pytest test_sample.py
この例では、pytest フレームワークをインストールし、pytest を使用してテスト スクリプトを実行しました。
概要
この記事では、単体テスト フレームワーク、モック ツール、Coverage.py の使用、ランダム テスト データの生成など、Python での単体テスト手法をいくつか紹介します。これらのヒントは、Python 開発者がより効率的で包括的な単体テストを作成するのに役立ちます。 Python 単体テストの作成を始めようとしている場合は、これらのヒントを使用して単体テストの品質を向上させることを検討してください。
以上がPython での単体テストのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonコードをSublimeテキストで実行するには、最初にPythonプラグインをインストールし、次に.pyファイルを作成してコードを書き込み、Ctrl Bを押してコードを実行する必要があります。コードを実行すると、出力がコンソールに表示されます。

Visual Studioコード(VSCODE)でコードを作成するのはシンプルで使いやすいです。 VSCODEをインストールし、プロジェクトの作成、言語の選択、ファイルの作成、コードの書き込み、保存して実行します。 VSCODEの利点には、クロスプラットフォーム、フリーおよびオープンソース、強力な機能、リッチエクステンション、軽量で高速が含まれます。

Golangは、パフォーマンスとスケーラビリティの点でPythonよりも優れています。 1)Golangのコンピレーションタイプの特性と効率的な並行性モデルにより、高い並行性シナリオでうまく機能します。 2)Pythonは解釈された言語として、ゆっくりと実行されますが、Cythonなどのツールを介してパフォーマンスを最適化できます。

メモ帳でPythonコードを実行するには、Python実行可能ファイルとNPPEXECプラグインをインストールする必要があります。 Pythonをインストールしてパスを追加した後、nppexecプラグインでコマンド「python」とパラメーター "{current_directory} {file_name}"を構成して、メモ帳のショートカットキー「F6」を介してPythonコードを実行します。
