2017-01-22 9 views
0

私は既にプロジェクトの重要なビジネスロジックの単体テストを書いていますが、私はTDDのコンセプトと長所と短所を認識しています。 TDDのやり方はまず "私は現在自分自身を開発していない中規模のプロジェクトに取り組んでいますが、これは非常に恐ろしいことです:テストは全くなく、強固に結合されたアーキテクチャー、依存性注入、レガシーMVCフレームワークなど - 理想よりも。私は、LaravelまたはSymfonyを使って最初から始め、TDDを適用して実際に疎結合でテスト可能なコードを実現することを考えています。PHP:MVCアプリケーションを使用したテスト駆動型開発

私は、このような「大きな」プロジェクトでTDDに頭を浮かべるのは良い考えではないことを知っています。私は、TDDが自分のコード設計にどのように影響するかを見るためにいくつかのテストプロジェクトを行います品質。そのために、ユーザー登録とムービーをレンタルする機能があれば、それは単に映画レンタルアプリケーションのようなものだとしましょう。また、私はすでにいくつかのUMLダイアグラムを作成しており、必要なオブジェクト、それらの関係、および必要なビジネスロジックについていくつかのアイデアを持っているとします。

So:どこから始めますか? MVCフレームワークでTDDを行う人と話すとき、ビジネスロジックの機能を「分離」し、受け入れテストで起動する傾向があります。機能は「使用可能なムービーのリストを表示」であり、テストは「 /映画といくつかのHTML "または何かに対して断言する。私には、これは良いスタートのように感じることはありません。

私は個人的には、ユーザーのログインやユーザー管理などの機能から始めたいのですが、ビジネスロジック自体よりもむしろアプリケーションをサポートしていることがほとんどです。もし私がこのアプローチを使用するのであれば、私が必要と知っている機能を意図的に無視しないのでしょうか? "OnlyLoggedInUserCanSeeMovieList"のような別のテストを追加して、失敗し、ロジックにコードを追加してみましょう。最初のテストを書く前にロジックが必要です。すでにわかっている機能を意図的に実装していないので、これによりコードが改善されるとは信じられません。

これはちょうど個人的な好みになっているのですか、それとも私をスタートさせるベストプラクティスのようなものがありますか? SymfonyやLaravelのようなフレームワークでTDDをどうやって始めますか?このような場合には、純粋なTDDを実行する際にも、フレームワーク自体がすでに多くのアプリケーションロジックを処理し、テストしていることが分かりますか?私を間違ってはいけない:TDDの賛否両論について別の戦争を始めたいとは思わない - 私はこれを完全に念頭に置いて恩恵を受けることができるだろうと確信している。それにもかかわらず、今、これはむしろ単純な機能上のばかげた量のミクロ進歩のように感じられます。私は、すべての "Writeテストを実行するのではなく、単なるユニット・テストの方がいいでしょう。 、リファクタリング "反復。いくつかの入力のための

おかげで、

クリス

答えて

0

は、私はあなたがあなたではなくあなたのユニットテストを開始したいと言うあなたはusing.For例になりますバンドルを見つけるために、いくつかの研究を行う必要がある最初のだと思いますfSymfonyを除いて、既にテストシリーズに付属している素晴らしいユーザー管理バンドルがあります。 私はあなたのプロジェクトを開始するときの最初のステップは、すでに存在するものを見つけることであり、あなたのニーズに合っていると言います。抽象度を最大にした後は、どこから開始するのかを簡単に確認することができます(通常は、使用しているすべてのバンドルが正しく動作することを確認するためのテストを書く)。

ご希望をお寄せください。

関連する問題