これは、PHPunit のドキュメントとこの期間中に専門家からの説明を組み合わせたものです。私が学んだ知識を記録し、将来の参考のために補足し、学んだことを改善したいと考えています。
通常、コードをテストするには単一のテストを使用します。会社のビジネスにおいて、彼はあなたの考えが十分に包括的ではないあらゆる小さな箇所を見つけるのを手伝ってくれます。 (ダニエルは、開発は最初に単体テストを書いてから実装コードを書くことができると言っていますが、今はまだそこから遠いと感じています)
スタブ(スタブ):
オブジェクトを(オプションで)に置き換えます。戻り値が設定されたテストダブルを返す方法をスタブと呼びます」 - これは公式ドキュメントにあるスタブの説明です
今見返して初めてわかるのですが、なんて言えばいいのでしょうか?梨を一つ取ってください。
====前提
テストしたいのはこのメソッドです: switchClothes($username) ---- 性別が 1 の場合は名前でデータベースをクエリし、0 の場合はパンツを返します。スカートを返します。
<?php Class Switch{ public function switchClothes($username){ $database=new database(); $gender=$databse->find("id=$username"); if($gender==0){ return "裙子"; }else{ return "裤子"; } } }
データベース クラスをカプセル化しました: find ()
==== テストの作成を開始します
まず最初に、SwitchClothes クラスをテストする必要があります。このカテゴリを通じてインスタンス化する必要があるため、データベース クラスは select メソッドを使用してデータベースにクエリを実行し、パンツとスカートのどちらが必要かを調べます。では、このメソッドのロジックをテストしたいのですが、ユーザー名が存在しない場合は、データベースにアクセスしてデータを作成する必要がありますか?面倒だし十分ではない。データの更新を含むメソッドをテストする必要がある場合、本当にデータを変更する必要がありますか?
半券が豪華に届きました。母はもう私がデータベースを操作していることを心配する必要はありませんし、インターフェイスが理解できないことを心配する必要もありません。
このクラスをスタブできます。もっと簡単に言うと、このクラスと偽のデータベースクラスのシミュレーションだと思います
上記の通り A=switchClothes B=database class D=database C=stub class
A B で呼び出す必要があります。 、B はデータベースにクエリします
ただし、C の存在は、少なくとも A では、C がデータベースをチェックしないように指定できます。いずれにしても、0 または 1 が返されます。これは、C がシステム A を B および D から分離し、結合を軽減することを意味します
その後、必要な C の構築を開始できます。
<?php use PHPUnit\Framework\TestCase; class StubTest extends TestCase { public function testStub() { // 为database类建立桩件。 $stub = $this->getMockBuilder("database")//类名 ->setMethods(array('find')) //可以是多个方法 ->getMock(); // 配置桩件。 $stub->method('find')//想要设置返回值的方法 ->willReturn(0);//设置返回值 // 现在调用 $stub->select() 将返回 '裙子'。 $this->assertEquals('裙子', $stub->find()); } } ?>
Cです。
単一のテストを受ける場合は、赤いパスを選択してください。
全員

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。
