NestJsテストのパフォーマンスの問題

ジョン・シュミッツ

アプリケーションのパフォーマンスに問題があるように思われるので、アプリケーションにいくつかのテストを書き始めました。

このテストだけでも最大10.842秒かかります。(冗談の出力による)

ネストCLIに付属する標準テストがスムーズに実行されたため、モックリポジトリを挿入することで何かが発生したようです。しかし、リポジトリ全体をモックしたので、DB接続に関連する待ち時間はないはずなので、混乱します。

import { ApplicationService } from '../application.service';
import { ApplicationRepository } from '../application.repository';
import { Test } from '@nestjs/testing';
import { ApplicationController } from '../application.controller';
import { ApplicationDTO } from '../DTO/applicationDTO';

describe('ApplicationService', () => {
  let service: ApplicationService;
  let mockRepo;
  beforeEach(async () => {
    mockRepo = {
      applications: [
      {id: 1, type: 'DATABASE', name: 'WhatsApp', access: 'ACCESS', user_access: 'HIGH', group: 'Nice', connection: 'aaaaaaaaaaaaaaa'},
      {id: 2, type: 'DATABASE', name: 'Telegram', access: 'ACCESS', user_access: 'LOW', group: 'Badguy', connection: 'aaaaaaaaaaaaaaa'},
    ],
    find() {
      return this.applications;
    },
    create(application) {
      this.applications.push(application);
      return { save() {
        return;
      }};
    },
    delete(id) {
      this.applications = this.applications.splice(0, id);
    },
  };
    const mockRepositoryProvider = {
      provide: ApplicationRepository,
      useValue: mockRepo,
    };
    const module = await Test.createTestingModule({
      controllers: [ApplicationController],
      providers: [ApplicationService, mockRepositoryProvider],
    }).compile();
    service = module.get<ApplicationService>(ApplicationService);
  });

  it('should be defined', () => {
    expect(service).toBeDefined();
  });

  it('should return all applications', () => {
    expect(service.findAll()).toBe(mockRepo.applications);
  });

  it('should add a application', () => {
    const application = new ApplicationDTO(
      { id: 4, type: 'DATABASE', name: 'WhatsApp', access: 'ACCESS', user_access: 'ACCESS', group: 'Nice', connection: 'aaaaaaaaaaaaaaa'},
      );
    service.add(application);
    expect(service.findAll()).toContainEqual(
      expect.objectContaining(
        { id: 4, type: 'DATABASE', name: 'WhatsApp', access: 'ACCESS', user_access: 'ACCESS', group: 'Nice', connection: 'aaaaaaaaaaaaaaa'},
    ));
  });
});

alectogeek

大丈夫だと思います。Nestアプリの起動には約10秒かかります。テストを追加しても、時間は大幅に増加しません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

システムのパフォーマンスの問題

分類Dev

パフォーマンスの問題

分類Dev

Pythonリスト操作のパフォーマンスの問題

分類Dev

パフォーマンステストAPI-WebClient.DownloadData非同期の問題

分類Dev

ベクトルのパフォーマンスの問題

分類Dev

SonataAdminエンティティのリストに関するパフォーマンスの問題

分類Dev

水平スクロールのテキストパフォーマンスの問題

分類Dev

パフォーマンスの問題を強調するマークダウンテキスト-Tkinter

分類Dev

EntityFrameworkでのテーブル結合のパフォーマンスの問題

分類Dev

非常に大きな IN (ids) ステートメントによるパフォーマンスの問題

分類Dev

iOSデバイスのパフォーマンスの問題

分類Dev

Rのループのパフォーマンスの問題

分類Dev

bashスクリプトのパフォーマンスの問題

分類Dev

「select」SQLiteリクエストのパフォーマンスの問題

分類Dev

デスクトップのパフォーマンスの問題

分類Dev

Pythonリストの反復、連結パフォーマンスの問題

分類Dev

AFTERUPDATEトリガーでのUPDATEのパフォーマンスの問題

分類Dev

パフォーマンスの問題を更新する-ベストプラクティス

分類Dev

春の起動時のパフォーマンスの問題

分類Dev

matplotlibの凡例のパフォーマンスの問題

分類Dev

PageStorageKeyでのFlutterListViewのパフォーマンスの問題

分類Dev

VirtualBoxでのLinuxMintのパフォーマンスの問題

分類Dev

Burrows-PythonのWheelerのパフォーマンスの問題

分類Dev

Djangoの多対多のパフォーマンスの問題

分類Dev

SQLでのUNION句のパフォーマンスの問題

分類Dev

Where andContainsでのLINQtoEntitiesのパフォーマンスの問題

分類Dev

HikariCP での Postgresql のパフォーマンスの問題

分類Dev

イオンタブのパフォーマンスの問題

分類Dev

イオンタブのパフォーマンスの問題

Related 関連記事

  1. 1

    システムのパフォーマンスの問題

  2. 2

    パフォーマンスの問題

  3. 3

    Pythonリスト操作のパフォーマンスの問題

  4. 4

    パフォーマンステストAPI-WebClient.DownloadData非同期の問題

  5. 5

    ベクトルのパフォーマンスの問題

  6. 6

    SonataAdminエンティティのリストに関するパフォーマンスの問題

  7. 7

    水平スクロールのテキストパフォーマンスの問題

  8. 8

    パフォーマンスの問題を強調するマークダウンテキスト-Tkinter

  9. 9

    EntityFrameworkでのテーブル結合のパフォーマンスの問題

  10. 10

    非常に大きな IN (ids) ステートメントによるパフォーマンスの問題

  11. 11

    iOSデバイスのパフォーマンスの問題

  12. 12

    Rのループのパフォーマンスの問題

  13. 13

    bashスクリプトのパフォーマンスの問題

  14. 14

    「select」SQLiteリクエストのパフォーマンスの問題

  15. 15

    デスクトップのパフォーマンスの問題

  16. 16

    Pythonリストの反復、連結パフォーマンスの問題

  17. 17

    AFTERUPDATEトリガーでのUPDATEのパフォーマンスの問題

  18. 18

    パフォーマンスの問題を更新する-ベストプラクティス

  19. 19

    春の起動時のパフォーマンスの問題

  20. 20

    matplotlibの凡例のパフォーマンスの問題

  21. 21

    PageStorageKeyでのFlutterListViewのパフォーマンスの問題

  22. 22

    VirtualBoxでのLinuxMintのパフォーマンスの問題

  23. 23

    Burrows-PythonのWheelerのパフォーマンスの問題

  24. 24

    Djangoの多対多のパフォーマンスの問題

  25. 25

    SQLでのUNION句のパフォーマンスの問題

  26. 26

    Where andContainsでのLINQtoEntitiesのパフォーマンスの問題

  27. 27

    HikariCP での Postgresql のパフォーマンスの問題

  28. 28

    イオンタブのパフォーマンスの問題

  29. 29

    イオンタブのパフォーマンスの問題

ホットタグ

アーカイブ