プレーンな PHP で単体テストを使用してコードをテストする方法を知りたいです。
これに対する彼らのガイドラインはありますか。
また、MVC アーキテクチャを使用して Web サイトを作成するときに単体テストを行う方法についても説明します。
プレーンな PHP で単体テストを使用してコードをテストする方法を知りたいです。
これに対する彼らのガイドラインはありますか。
また、MVC アーキテクチャを使用して Web サイトを作成するときに単体テストを行う方法についても説明します。
フレームワークがまったくなくても単体テストを作成できますが、PHPUnitまたはEnhancePHPから無料で入手できる多くの概念を自分で作成していることがわかります。
特に、フレームワークには、テストをアサートできるヘルパー、テストで使用する偽物を提供するヘルパー(MVCパターンを使用している場合に特に役立ちます)、および結果を実行して表示する方法があります。
単体テストフレームワークのソースコードを見ると、これらすべてのヘルパーがどのように機能するかがわかります。最終的には、フレームワークを作成するよりも習得する方が迅速です。
手動テストの例を次に示します。結果が正しくない場合、または例外がある場合、テストは失敗します。
$passed = true;
try {
$result = $target->addTwoNumbers(5, 2);
$passed = 7 === $result;
} catch (Exception $e) {
$passed = false;
}
return $passed;
フレームワークを使用すると、これははるかに読みやすくなります。
$result = $target->addTwoNumbers(5, 2);
Assert::areIdentical(7, $result);
どちらの例でも、テストを設定するためのコードを省略しています。つまり$target
、比較に意味がないため、作成します。
SimpleTest ( http://www.simpletest.org/ )もあります。これは非常に軽量です。他の多くのテストスイートの荷物なしで。
Selenium などの自動化ツールを使用することもできます。これは、ユーザーが座ってマウスをブラウジングするのを本質的に模倣します。明らかに、それをトレーニングしてテストを割り当てる必要があります。
このチュートリアルを試す
http://pear.php.net/manual/en/package.php.phpunit.intro.php
単体テストには PHPUnit を使用するのが最適です。
もちろん、PHPUnit やその他の単体テスト フレームワークを使用することもできます。プロジェクトに多くの余分なコードを追加するという考えが好きではなかったので、自分で単体テスターを書きました。
基本的な単体テストには、2 つの PHP ファイル/クラスのみが必要です。1 つは実際のテストを実行し、もう 1 つは単体テストの基本クラスです。
これを行う方法を示すコードをブログに書きました。単体テスターの動作はこちらで見ることができます。
私の認識では、SO での質問がこのようにポップアップする場合、ほとんどの答えは次のとおりです。自分で xxx を使用しないでください。ただし、これにはペナルティが伴います。コードが肥大化し、完成したプロジェクトが大きくなり、保守が難しくなり、サードパーティのコードに依存するようになります。