44

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

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

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

4

8 に答える 8

41

PHPUnit とSimpleTestの両方を使用しましたが、 SimpleTestの方が使いやすいことがわかりました。

TDDに関する限り、私は純粋な意味であまり運がありませんでした。それは主に私の側の時間/規律の問題だと思います.

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

于 2008-09-05T16:54:04.623 に答える
11

Kent Beck (ISBN-10: 0321146530) による Test-Driven Developmentを強くお勧めします。これは PHP 用に特別に作成されたものではありませんが、概念はそこにあり、PHP に簡単に変換できるはずです。

于 2008-09-08T21:18:36.410 に答える
9

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

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

たとえば、代わりに行うことは、完了時に多くのテストを作成することです。偽のテストに合格することがあるため、これが常に最良のアプローチであるとは限りませんが、実際には有用ではありませんが、少なくとも拡張できるものです。内部的にはテストを継続し、基本的には見つかったバグごとにテストを作成します。これはそれがより堅固になる方法です。

于 2008-09-05T17:24:53.597 に答える
4

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

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

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

実際、さらにサポートが必要な場合は、SOのプロファイル情報から直接私に連絡することができます。私はあなたを助けたいです。

于 2008-09-05T21:56:35.580 に答える
2

SimpleTest は優れたシステムです。私は約 5 か月前に TDD について聞いたことがなく、SimpleTest を使い始めました。SimpleTest は簡単に習得できますが、それでも強力です。リソースに関しては、Kent Beck によるTDD By Exampleを現在読んでいますが、とても良いです。

于 2008-09-05T16:55:18.113 に答える
1

PHPUnitを調べる必要があります。これは nUnit によく似ています。

于 2008-09-05T16:53:20.317 に答える
1

あなたが見るべきもう一つの現代的なツールはCodeceptionです。PHPUnit よりもはるかに単純で、テストからドキュメントを生成するのに非常に役立つシナリオ駆動型のアプローチが組み込まれています。

于 2012-02-27T23:54:48.000 に答える
0

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

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

于 2018-06-26T20:23:12.833 に答える