phpunitをインストールし、プロジェクト環(huán)境を構(gòu)成します。 2。テストディレクトリ構(gòu)造を作成し、ソースコードに対応します。 3.獨(dú)立したテストケースを記述し、アサーションを使用して結(jié)果を確認(rèn)します。 4。モックオブジェクトと外部依存関係を分離します。 5.コードの品質(zhì)を確保するために頻繁にテストを?qū)g行します。まず、Composerを介してphpunitをインストールし、phpunit.xmlファイルを構(gòu)成します。次に、テストディレクトリを作成して、テストクラスを保存します。各テストクラスはテストケースを継承し、テストの開(kāi)始時(shí)にメソッドを書き込みます。ロジックの正確性を検証するために、アサートエパールなどのアサートを使用します。 CreateMockを使用して、外部依存関係の動(dòng)作をシミュレートします。最後に、ベンダー/bin/phpunitコマンドを定期的に実行してテストを?qū)g行し、CIプロセスに統(tǒng)合してコードの安定性を向上させます。
書き込みを開(kāi)始します。PHPunitのセットアップを受け取ったら、コードを小さなテスト可能なピースに分割し、予想どおりに動(dòng)作することを確認(rèn)することです。重要なのは、一度に1つのことに焦點(diǎn)を合わせ、テストをシンプルで速く保ち、合格する前に失敗することを確認(rèn)することです(実際に何かをテストしていることがわかります)。
プロジェクトにphpunitを設(shè)定します
テストを作成する前に、phpunitをインストールする必要があります。ほとんどの最新のPHPプロジェクトは作曲家を使用しているので、実行してください。
作曲家には-dev phpunit/phpunitが必要です
次に、プロジェクトルートにphpunit.xml
ファイルを作成します?;茎些`ジョンは次のようになるかもしれません:
<phpunit bootstrap = "vendor/autoload.php"> <TestSuites> <testsuite name = "私のテストスイート"> <directory>テスト</directory> </testsuite> </testsuites> </phpunit>
これにより、PHPunitがテストファイルを見(jiàn)つける場(chǎng)所とクラスを自動(dòng)裝備する方法を示します。
LaravelやSymfonyなどのフレームワークを使用している場(chǎng)合、それらは既に構(gòu)成されているPHPunitを使用していることがよくあります。
テストを適切に構(gòu)成します
プロジェクトにtests
フォルダーを作成し、その內(nèi)部では、ソースコードの構(gòu)造をミラーリングします。たとえば、 src/Calculator.php
にクラスがある場(chǎng)合は、テストをtests/CalculatorTest.php
に入れます。
phpunitテストクラスはPHPUnit\Framework\TestCase
を拡張する必要があります。 test
から始まる各パブリックメソッドは、別のテストケースとして扱われます。
これが基本的なテストのように見(jiàn)えるかもしれません:
phpunit \ framework \ testcaseを使用します。 クラスcalculatortestはテストケースを拡張します { パブリック関數(shù)testAddition() { $ calculator = new Calculator(); $ result = $ calculator-> add(2、3); $ this-> assertequals(5、$ result); } }
-
$this->assertEquals()
を使用して、期待値を確認(rèn)します。 -
$this->assertTrue()
、$this->assertNull()
などを使用することもできます。
獨(dú)立したテストを作成してみてください。1つのテストが失敗すると、他のテストにも失敗することはありません。
テストを集中させるためのモック依存関係
クラスが外部サービス(データベースやAPIなど)を使用している場(chǎng)合、テストが毎回実際のシステムにヒットする必要はありません。それがモックが入ってくるところです。
Phpunitには、モックオブジェクトを作成するためのサポートが組み込まれています。これが例です:
パブリック関數(shù)testfetchdatafromapi() { $ mockapi = $ this-> createmock(apiclient :: class); // getData()が呼び出されたときに特定の値を返すようにモックに指示します $ mockapi-> method( 'getdata') - > willreturn(['id' => 1]); $ service = new DataService($ MOCKAPI); $ data = $ service-> fetchandprocess(); $ this-> assertequals(1、$ data ['id']); }
いくつかのヒント:
- 必要なものだけをock笑してください - 無(wú)理をしないでください。
- あまりにも多くの方法をock笑しないでください。それは通常、あなたのクラスがやりすぎていることを意味します。
- プライベートな方法をテストする必要があることに気付く場(chǎng)合は、リファクタリングを検討してください。単位テストは、公共の行動(dòng)に焦點(diǎn)を當(dāng)てる必要があります。
頻繁にテストを?qū)g行します
テストが書かれたら、次のように定期的に実行します。
ベンダー/bin/phpunit
これは、回帰を早期に捕まえるのに役立ちます。 phpunitをgitフックやCIパイプライン(githubアクションやgitlab CIなど)に統(tǒng)合して、自動(dòng)化することもできます。
テストが失敗した場(chǎng)合は、出力を注意深く読み取ります。Phpunitは通常、何がうまくいかなかったか、どのラインが修正が必要かを正確に示します。
それは基本的にそれです。 phpunitでユニットテストを書くことは複雑ではありませんが、規(guī)律が必要です。小さく起動(dòng)し、最初にコアロジックをテストし、そこから構(gòu)築します。
以上がPHPUnitを使用してPHPコードの単體テストを記述するにはどうすればよいですか?の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無(wú)料で

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

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

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開(kāi)発ツール

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

ホットトピック











Java でインターフェイスと抽象クラスを単體テストする手順: インターフェイスのテスト クラスを作成します。インターフェイス メソッドを?qū)g裝するためのモック クラスを作成します。 Mockito ライブラリを使用して、インターフェイス メソッドをモックし、テスト メソッドを作成します。抽象クラスはテストクラスを作成します。抽象クラスのサブクラスを作成します。抽象クラスの正確性をテストするテスト メソッドを作成します。

PHP 単體テスト ツール分析: PHPUnit: 大規(guī)模プロジェクトに適しており、包括的な機(jī)能を提供し、インストールが簡(jiǎn)単ですが、冗長(zhǎng)で遅い場(chǎng)合があります。 PHPUnitWrapper: 小規(guī)模プロジェクトに適しており、使いやすく、Lumen/Laravel に最適化されていますが、機(jī)能が限られており、コード カバレッジ分析は提供されず、コミュニティ サポートも限られています。

Go 関數(shù)の単體テストでは、エラー処理に 2 つの主な戦略があります。1. エラーをエラー タイプの特定の値として表現(xiàn)し、期待値をアサートするために使用します。2. チャネルを使用してエラーをテスト関數(shù)に渡します。これは、同時(shí)実行コードのテストに適しています。実際のケースでは、関數(shù)が負(fù)の入力に対して 0 を返すようにするために、エラー値戦略が使用されます。

パフォーマンス テストでは、さまざまな負(fù)荷の下でアプリケーションのパフォーマンスを評(píng)価します。一方、単體テストでは、単一のコード単位の正確性を検証します。パフォーマンス テストは応答時(shí)間とスループットの測(cè)定に重點(diǎn)を置き、単體テストは関數(shù)の出力とコード カバレッジに重點(diǎn)を置きます。パフォーマンス テストは高負(fù)荷と同時(shí)実行性のある現(xiàn)実の環(huán)境をシミュレートしますが、単體テストは低負(fù)荷とシリアル條件で実行されます。パフォーマンス テストの目標(biāo)は、パフォーマンスのボトルネックを特定し、アプリケーションを最適化することですが、単體テストの目標(biāo)は、コードの正確さと堅(jiān)牢性を確認(rèn)することです。

テーブル駆動(dòng)テストは、テーブルを通じて入力と予想される出力を定義することにより、Go 単體テストでのテスト ケースの作成を簡(jiǎn)素化します。構(gòu)文には次のものが含まれます。 1. テスト ケース構(gòu)造を含むスライスを定義します。 2. スライスをループし、結(jié)果を予想される出力と比較します。実際のケースでは、文字列を大文字に変換する関數(shù)に対してテーブル駆動(dòng)テストが実行され、getest を使用してテストが実行され、合格結(jié)果が出力されました。

Golang 単體テストでアサーションに Gomega を使用する方法 Golang 単體テストでは、Gomega は、開(kāi)発者がテスト結(jié)果を簡(jiǎn)単に検証できるように、豊富なアサーション メソッドを提供する人気のある強(qiáng)力なアサーション ライブラリです。 Gomegagoget-agithub.com/onsi/gomega をインストールする アサーションに Gomega を使用する アサーションに Gomega を使用する一般的な例をいくつか示します。 1. 等価アサーション import "github.com/onsi/gomega" funcTest_MyFunction(t*testing.T){

効果的な単體テスト ケースを設(shè)計(jì)するには、原子的、簡(jiǎn)潔、反復(fù)可能、明確という原則を遵守することが重要です。手順には、テストするコードの決定、テスト シナリオの特定、アサーションの作成、テスト メソッドの記述が含まれます。実際のケースでは、max() 関數(shù)のテスト ケースの作成を示し、特定のテスト シナリオとアサーションの重要性を強(qiáng)調(diào)しています。これらの原則と手順に従うことで、コードの品質(zhì)と安定性を向上させることができます。

PHP 単體テストでコード カバレッジを改善する方法: PHPUnit の --coverage-html オプションを使用してカバレッジ レポートを生成します。 setAccessible メソッドを使用して、プライベート メソッドとプロパティをオーバーライドします。アサーションを使用してブール條件をオーバーライドします。コードレビューツールを使用して、コードカバレッジに関する追加の洞察を取得します。
