fileイントロダクションテストをするというアイディアは決して新しいものではありません。あなたが最後にコミットしたものがアプリケーション全体をダウンさせていないということに確証が持てなければ、きっと夜も心地よく眠ることができないでしょう。テストをすることで、あなたのアプリケーションが安定していると確信できるのです。多くのケースにおいて、テストはあなたのアプリケーションが100%正しく期待通りに動く保証をしているわけではありません。複雑なアプリケーションにおいて、起こりうるすべてのシナリオや例外を事前に把握するのは不可能です。テストをすることにより、あなたのアプリケーションの最も大事な部分は予想通りに、そして確実に動作するという確証を持つことができるのです。アプリケーションをテストする方法はたくさんあります。ウェブアプリケーションでは、コントローラーやモデルを単体でテストしてもあなたのアプリケーションが正しく動作するという保証は持てません。test)を書くべきです。Codeceptionのテストフレームワークはこれらのレベルを区別します。単体テスト、機能テスト、受け入れテストを1つの方法ですぐに書けるようになるためのツールなのです。それでは、リストされているテストのパラダイムを逆の順序で確認してみましょう。ブラウザーを開き、ウェブサイトにアクセスし、リンクをクリックし、フォームを埋め、表示されたウェブページのコンテンツを実際に見る必要があります。その人はウェブサイトがどのようなフレームワークやデータベース、ウェブサーバー、またはプログラミング言語によって実装されているのかを知らないですし、なぜアプリケーションが期待通りに動作しないかも分かりません。受け入れテストでは、ユーザー視点による標準的かつ複雑なシナリオをカバーすることができます。受け入れテストを行うことで、あなたは定義されたシナリオ通りに動くユーザーがエラーに直面しないと確証を得ることができるのです。受け入れテストは任意のウェブサイトで行えるということを覚えておいてください。それは、あなたがカスタマイズしたCMSやフレームワークを使っていたとしてもです。レンダリングやjavascriptの問題は予測できない結果につながる可能性があります機能テストもし私たちのアプリケーションをサーバーを動かさずにチェックできたらどうでしょう?そうすることで私たちは例外の詳細なエラーを見たり、テスト速度を早くしたり、データベースの値が予想通りであることをチェックできるのです。これが機能テストです。機能テストのためには、ウェブリクエスト($_GETと$_POST変数)をエミュレートし、HTMLレスポンスを返すアプリケーションに送信します。テスト内でレスポンスに関するアサーションを行ったり、データがデータベースに正しく格納されたかをチェックすることもできます。機能テストを行うにあたって、あなたのアプリケーションはテスト環境で実行する準備が整っていなければなりません。Codeceptionはいくつかの人気なPHPフレームワークとのコネクターを提供していますが、あなた自身でそれを書くこともできます。悪影響を及ぼす可能性があるのは、大規模なコードの変更やフレームワークの変更だけです短所javascriptとajaxをテストできませんブラウザーをエミュレートするため、より多くの偽陽性の結果を得るかもしれませんフレームワークが必要です単体テスト複数のコードを連結する前に、コードの断片をテストするのは非常に重要なことです。これを行うことにより、機能テストもしくは受け入れテストでカバーされなかった場合であったとしても、深い箇所に隠されたいくつかの機能がまだ動作するということに確証が得られます。これはまた、あなたが安定したテスト可能なコードを生成したということを証明します。CodeceptionはPHPUnitの上に作成されています。あなたがPHPUnitを使った単体テストを書いた経験があるようでしたら、それを引き続き行うことが可能です。Codeception上で標準のPHPUnitによる単体テストを実行しても問題はありませんが、Codeceptionはあなたの単体テストがより簡単かつ綺麗になるよう構築されたツールをいくつか提供しています。テストが未経験の開発者でも、何がどのようにテストされているのかを知っておくべきでしょう。要件やコードは急激に変わることがあり、単体テストも要件に合うよう毎回アップデートするべきです。ベターなのは、あなたがテストのシナリオを理解し、新しい挙動に対して迅速にアップデートすることです。コードの変更に非常に敏感ですまとめTDDの幅広い人気にも関わらず、これまでに、すべてのPHP開発者がアプリケーションのための自動化テストを書いてきたわけではありません。Codeceptionのフレームワークはテストを行うのが本当に楽しくなるよう開発されました。それは単体テスト、機能テスト、そして受け入れテストを1つのスタイルで書けるようにしたのです。これはBDDフレームワークと呼べるでしょう。Codeceptionのすべてのテストは記述作法に基づいて書かれています。テスト本文を見るだけで、あなたは何のテストがどのように行われているのかを明確に理解することができるようになります。多くのアサーションのある複雑なテストでさえ、単純なPHPのDSLで記述されています。