phpユニットテストステップ(2)-スタート

2420 ワード

phpユニットテストステップ(2)-スタート
このシリーズの文章の主なコードと文字は「ユニットテストの芸術」に由来し、原作者:Roy Osherove.金迎.
このシリーズの文章はphpの文法と使用習慣に基づいて改編された.すべてのコードは本機でテストに合格した.転載する場合は出典を明記してください.
まずtestsディレクトリの下のすべてのファイルを空にします.実は2つです.
ログ・ファイルを分析し、特定の状況とイベントを検索し、見つけたら自動的に関係者に通知するプロジェクトがあるとします.まず、最も簡単なクラスと方法を作って、方法名が有効かどうかをテストします.以下のとおりです.
t 2アプリケーションindexcontrollerでファイルを作成php

上のコードに注意して、わざと書き間違えて、ifの後ろに1つ漏れました!演算子.ユニットテストをしましょう.
t 2testsindexcontrollerでLogAnalyzerTestを作成します.php、内容は以下の通りです
isValidLogFileName("file_with_bad_extension.foo");
        $this->assertFalse($result);
    }
}

推奨されるテストメソッド名の仕様:
[UnitOfWorkName]_[ScenarioUnderTest]_[ExpectedBehavior]

UnitOfWorkName:作業ユニット名は、被測定クラスの1つのメソッドにも、被測定項目の複数のクラスまたはメソッドにも対応します.前者は元のメソッド名を直接参照でき,後者はUserLogin,RemoveUser,Startupなどである.1つの作業ユニットには、少なくとも1つのテスト方法があるはずです.ScenarioUnderTest:どのような状況が発生したか、どのような状況が発生したか、どのような条件を指定するか、例えば「ログイン失敗」、「無効なユーザー」、「パスワードが正しい」などのExpectedBehavior:テストシーンの指定条件の下で、被験方法の動作に対する予想.
上記の被験クラスのテストファイル名が正しいかどうかのテスト方法については、isValidFileNameと名前を付けることができます.BadExtension_RetrunFalse.
1つのユニットテストには通常3つのステップがあります.
(1)オブジェクトの準備,オブジェクトの作成,必要な設定,初期データの作成を含む.(2)操作対象(3)ある事柄が予想に合致すると断言する.
cmdウィンドウの下で、t 2ディレクトリの下でphp think unitを実行してテストが合格していないことを見て、私達のソースコードが間違っているため、修正したコードは以下のように示すべきです
if (!preg_match('/\.SLF$/', $filename)){
    return false;
}

今テストに合格しました.私のパソコンには、次のように表示されています.
D:\workspace\t2>php think unit
PHPUnit 4.8.35 by Sebastian Bergmann and contributors.

.

Time: 398 ms, Memory: 4.00MB

OK (1 test, 1 assertion)

D:\workspace\t2>

上一篇:php单元测试进步(1)-インストール下篇:php单元测试进步(3)-入门-添加检查