sql >> データベース >  >> RDS >> PostgreSQL

TypeORMのQueryBuilderチェーンメソッドをテストする適切な方法は何でしょうか?

    QueryBuilderにはjest.spyOnを使用できます このようなプロトタイプ:

    import { QueryBuilder } from 'typeorm';
    
    describe('Name of the group', () => {
        it('should do something', () => {
          const queryBuilder: any = {
            into: jest.fn().mockReturnThis(),
            values: jest.fn().mockReturnThis(),
            onConflict: jest.fn().mockReturnThis(),
            setParameter: jest.fn().mockReturnThis(),
            execute: jest.fn().mockRejectedValueOnce(new Error('db Error')),
            // execute: jest.fn().mockResolvedValueOnce({ res: 'mockRes' }),
          };
          jest
            .spyOn(QueryBuilder.prototype, 'insert')
            .mockReturnValueOnce(queryBuilder);
        });
    });
    

    関数の使用法

    
    export async function doQuery(input: any){
      const queryRunner = await Entity.createQueryRunner();
      await queryRunner.manager
      .createQueryBuilder()
      .insert()
      .into(Entity)
      .values(input)
      .onConflict(
        `("id") DO UPDATE SET "date" = :date`
      )
      .setParameter('date', date)
      .execute();
    }
    
    



    1. pipのインストールが/usr/ bin / clangで失敗する:そのようなファイルやディレクトリはありません

    2. Oracle SQL DeveloperでXMLファイルをインポートする方法は?

    3. Pythonマルチプロセッシングプールがマップ呼び出しでハングする

    4. MySQL静的ハッシュインデックス