2

私は、非常に大きなベースのjavascriptアプリケーションに変わるものを扱っておりnode.js、テストをどのように編成するかについて考え始めました。
アプリケーションは基本的にRESTAPIであるため、リクエストは認証され、ユーザーが送信したデータは検証されてからデータベースに保持されます。

私は、このサイズのプロジェクトのテストをどのように編成するかについて完全に不慣れです。

モジュール式の単体テストから始めて、フルスケールの統合テストで終わるように、各リソースを個別にテストする必要がありますか?
または、レイヤーごとにテストする必要があります。つまり、認証、検証、永続性、統合をリソースごとに個別にテストする必要がありますか?

常識とは何ですか?

4

1 に答える 1

3

テストの正しい方法も間違った方法もありません。重要なことは、価値を付加する意味のあるテストを行うことです。何も持たないよりも、いくつかのテストを行う方が良いです。

私のアプローチは、ユニットテストと統合テストを区別せずに、作業中のもののテストを作成することです。したがって、RESTサービスに取り組んでいる場合は、RESTサービスのテストを作成します。認証、永続性に取り組んでいる場合は、認証、永続性のテストを作成します。

また、テストに必要なテストデータをセットアップおよび管理するテストを作成することも重要です。これは、誰でもテストを実行できるようにするために重要です。また、テストを継続的インテグレーション環境ですぐに実行できることも重要です。

修正したすべての欠陥をテストします

欠陥に取り組んでいる場合は、失敗するテストを作成します。つまり、欠陥を再現し、コードの修正後にテストに合格することを確認します。私の意見では、これは最も重要なことです。これらのテストでは、修正された問題が修正されたままであることを確認します。

コードのリファクタリング

コードのリファクタリングを行うと、作成するすべてのテストの価値が明らかになります。リファクタリングされたコードが既存のテストに失敗した場合、リファクタリングされたコードは壊れており、既存のすべてのテストに合格するまで修正する必要があります。

時間がないとき

時間の不足やその他の理由でテストの種類を選択する必要がある場合は、これらのテストが直接または間接的に認証や永続性などを実行するため、より広範なテストまたはエンドツーエンドのテストまたは統合テストを作成することが最も価値があります。 。これを永続性の単体テストと比較すると、統合テストは永続性を間接的にテストするため、統合テストからより多くのことが得られます。

于 2012-10-10T20:26:25.993 に答える