ホームページ  >  に質問  >  本文

NestJS API でテスト駆動開発を使用すると、コントローラーとサービスが同じテストを共有します

私は Prisma と MySQL を使用して NestJS ベースの API を開発しています。私はテスト駆動開発 (TDD) を初めて使用するため、プロジェクトにテストを追加し始めたいと思っています。 UsersService のテストは正常に作成できましたが、対応する UsersController をテストする方法がわかりません。また、単体テストと結合テストの違いもよくわかりません。以下に、UsersServiceUsersController、および私が作成したテストに関連するコード スニペットを示します。

プリズムソリューション:

リーリー

UsersService (関連部分):

リーリー

UsersController (関連部分):

リーリー

具体的な問題:

P粉354602955P粉354602955369日前448

全員に返信(1)返信します

  • P粉052686710

    P粉0526867102023-09-17 00:07:45

    単体テストを使用すると、各メソッドを個別にテストできます。たとえば、コントローラー メソッドがサービスのメソッドを呼び出して返す場合、コントローラー メソッドがサービスのメソッドを呼び出すかどうかを単体テストでテストする必要があります。

    統合テストはコード全体のテストに重点が置かれており、通常はモック オブジェクトを使用せず、実際のデータベースなどを使用してアプリケーションのフロー全体をテストしようとします。たとえば、ログインとログアウト、登録とプロファイルの作成などのユーザー ストーリーをテストできます。

    個人的に、TDD を使用するときは、最初に単体テストを作成します。必要に応じて、後で統合テストを作成します。

    返事
    0
  • キャンセル返事