質問

私は PHP を使用する Web 開発者です。C# デスクトップ アプリケーションでのテスト駆動開発の使用経験は限られています。その場合、単体テスト フレームワークに nUnit を使用しました。

新しいプロジェクトで TDD の使用を開始したいと考えていますが、どこから始めればよいかわかりません。

PHP ベースの単体テスト フレームワークについてどのような推奨事項がありますか?また、TDD の概念にあまり慣れていない人に適したリソースは何ですか?

役に立ちましたか?

解決

私はPHPUnitと シンプルテスト そして私は見つけました シンプルテスト より使いやすくなります。

TDD に関して言えば、私は純粋な意味であまり運が良くありませんでした。ただし、それは主に私の時間と規律の問題だと思います。

事後にテストを追加することはある程度便利ですが、私のお気に入りの方法は、修正する必要がある特定のバグをテストする SimpleTest テストを作成することです。これにより、物事が実際に修正され、修正されたままであることを確認することが非常に簡単になります。

他のヒント

強くお勧めします テスト駆動開発 Kent Beck 著 (ISBN-10:0321146530). 。これは PHP 向けに特別に書かれたものではありませんが、概念は存在しており、PHP に簡単に変換できるはずです。

PHPUnit は標準ですが、時には圧倒されることもあるので、複雑すぎると感じた場合はチェックしてください。 phpt 始めましょう。テストを書くのはとても簡単です。プログラマーにとっては簡単なことです。

TDD の質問に答えると、TDD が PHP 分野で広く使用されているかどうかはわかりません。迅速なアプリケーション開発と TDD は多少衝突することがわかります (厳密には私見です)。TDD では、構築するものの全体像を把握し、事前にテストを作成してから、テストに合格するコードを実装する必要があります。

したがって、たとえば、代わりに行うことは、完了したらたくさんのテストを書くことです。これは、合格しても実際には役に立たない偽のテストが発生する場合があるため、常に最良のアプローチであるとは限りませんが、少なくとも拡張できるものです。内部的にはテストを継続し、基本的には見つかったバグごとにテストを作成します。こうやってさらにしっかりしていきます。

個人的には SimpleTest の方が好きです。コマンド ライン テスト ランナーと Web ベースのテスト ランナーがあり、さらに Eclipse もあります。 プラグイン IDE 自体から単体テストを実行できるようにします。Zend から PHPUnit への接続は、特にデバッガの場合、動作させるのがはるかに難しいことがわかりました。

SimpleTest を社内で使用する方法は、 継続的インテグレーション 自分たちで書いたスクリプト。SVN に機能をチェックインするたびに、単体テストが組み込まれます。約 1 時間ごとに CI スクリプトが実行され、すべての単体テストを実行するコマンド ライン PHP スクリプトが呼び出されます。休憩があればメールが届きます。これはシステムのバグを減らすための素晴らしい方法です。

ただし、次のようなものも簡単に使用できます ピン cron ジョブまたは SVN チェックイン フックを使用して、テストを自動的に実行します。

実際、さらにサポートが必要な場合は、SO の私のプロフィール情報から私に直接連絡することができます。ぜひお手伝いさせていただきたいと思います。

SimpleTest は素晴らしいシステムです。私は約 5 か月前に TDD について聞いたことがなく、SimpleTest を使い始めました。SimpleTest は習得が簡単ですが、依然として強力です。リソースに関しては、現在読んでいます 例による TDD ケント・ベック著、いいですね。

調べてみるといいよ PHPUユニット, 、nUnitとよく似ています。

あなたが注目すべきもう1つの最新ツールは次のとおりです コードセプション. 。これは PHPUnit よりもはるかに単純で、シナリオ主導のアプローチが組み込まれており、テストからドキュメントを生成するのに非常に役立ちます。

テスト駆動開発は、常にコードの前にテストを記述するアプローチです。あなたはそれを学ぶべきです ププユニット TDD 開発を開始するには、まず最初に。次に、関数を作成するときに、関数がどのように失敗するかを常に考え、phpunit でテスト ケースを作成し、最終的にはテストに合格するコードを作成する必要があります。新しいアプローチなので最初は少し難しいかもしれませんが、慣れてしまえば、特に開発後のバグやコーディングスタイルに非常に役立つことがわかります。これを通過できます ステップバイステップ この概念を理解するためのガイド。

開発後にテストを作成した場合、テストは役に立たないことを常に覚えておいてください。したがって、単体テストを作成しようと考えている場合は、TDD が必須です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top