先週学んだこと:テスト駆動型開発へのイントロ


前提条件:角度.js
過去数年間、私は開発者のキャリアを開始したとして、私にとって困難に思われた1つの練習は、テスト駆動の開発です.大部分は、私が私のコードベースにそれを決して実装しなかった一般のアセンブリの私の時間まで、事実から生じます.私がTDDを越える今後のインタビューの準備をするので、それはすべて変わりました.練習するために、私はこの恐れられて誤解された実行にこの週入場を捧げることに決めました.

何?
では、テスト駆動開発は何ですか?
Per Wikipedia , テストドリブン開発(TDD)は、ソフトウェアが完全に開発される前にテストケースに変換され、すべてのテストケースに対してソフトウェアを繰り返しテストすることによってすべてのソフトウェア開発を追跡するソフトウェア要件に依存するソフトウェア開発プロセスです.これは、最初に開発されたソフトウェアと、後で作成されたテストケースとは対照的です.
しかし、それは何を意味しますか?
その他words , プログラムの各機能のテストケースは、最初に作成され、テストされ、テストが失敗した場合、新しいコードがテストを通過し、コードをシンプルでバグフリーにするために書き込まれます.

どうやって?

では、テスト駆動の開発はどの程度正確に行われますかwork ?
  • 機能またはバグ要求を読んで、理解して、処理してください.
  • 単体テストを書くことで要件を翻訳します.ホットリロードがセットアップされている場合、ユニットテストは実行されず、コードがまだ実装されていないので失敗します.
  • 必要条件を満たすコードを書き込み、実装します.すべてのテストを実行してください、そして、このステップを繰り返さないならば、彼らは通過しなければなりません.
  • リファクタリングによってコードをクリーンアップします.
  • リンス、泡と繰り返し.
  • 注意:角では、2種類のテストがあります.
    エーunit test は、システムで論理的に分離できるコードの最小の部分をテストする方法です.ほとんどのプログラミング言語では、関数、サブルーチン、メソッドまたはプロパティです.
    End to end テストは、アプリケーションのワークフローを最初から最後まで検証するプロセスです.このテスト方法論は、実際のユーザシナリオを複製することを目的としており、システム全体の機能性を検証することができる.
    TDD例:
    注:私のコードをテストするジャスミンを使用するつもりです.Jasmine は、カルマと非常によく機能するJavaScriptコードをテストするための振る舞い駆動開発フレームワークです.カルマと同様に、角のCLIであなたのためのセットアップとして、それは角度ドキュメンテーション内の推奨されたテストフレームワークでもあります.ジャスミンも依存フリーであり、DOMを必要としません.
    端末において、次のコマンドを実行して新しい角度プロジェクトを作成するつもりです.ng new zoo次に、私は“動物園”という名前の新しいコンポーネントを作成するつもりです.ng generate component zoo
    私の新しい角度プロジェクトが作成されたので、再び私の端末に向かい、次のコマンドを実行します.ng test端末出力はスクリーンショットのようになります.

    また、ブラウザのウィンドウでは、すべての最初のテストの通過を知っているように開く開きます.すてきな、

    最初のステップでは、私はどのような新機能を構築する必要が理解する必要があります.この場合、私は動物園の構成要素に名前が欲しいです.
    第二に、単体テストを書くことで要件を翻訳する必要があります.
    インzoo.component.spec.ts 次のテストを書きます.
     it('should have a name', () => {
        expect(component.zooName).toBeTruthy();
      });
    
    コードが実装されていないため、テストが失敗します.

    次の3つの状態は、テストパスを作るコードを実装する必要があります.どのようにすればよいでしょうか.私は単に“Name”と呼ばれる動物園コンポーネントで新しいプロパティを作成し、それに値を追加する必要があります.

    甘い!我々のテストのすべては、現在通過しています!
    これは簡単な例で、リファクタリングする必要はありませんが、次のステップ4とリファクタに移動します.
    Voila!あなたはTDDを利用して最初のアプリケーション機能を実装しました!
    なぜ?
    テスト駆動開発は、開発者に我々のコードが期待された状況で時間の100 %働くという確信を与えます.
    TDDは数を提供するbenefits :
    コードが堅牢なので、それはより速い革新と連続配達を可能にすることができます.
    それはあなたのコードを柔軟かつ拡張可能にします.コードをリファクタリングまたはコードを破るの最小リスクで移動することができます.
    テスト自体をテストしました.テストの主要な特徴は、失敗することができ、開発チームはそれぞれの新しいテストが失敗することを検証する.
    生成されるコードは、設計、簡単にテストすることです.
    必要とされる機能だけが書かれるので、必要条件は無駄な努力にほとんど実装されません.