[typescript] 타입스크립트와 Jest를 사용하여 데이터베이스 연동을 테스트하는 방법

데이터베이스를 사용하여 백엔드 애플리케이션을 개발할 때, 데이터베이스 연동 부분의 테스트는 매우 중요합니다. 이 글에서는 타입스크립트와 Jest를 사용하여 데이터베이스 연동을 테스트하는 방법에 대해 알아보겠습니다.

1. 환경 설정

우선, 프로젝트에 타입스크립트와 Jest를 설치합니다. 이후, 데이터베이스 연동 모듈을 구성하고, 테스트할 데이터베이스를 설정합니다.

npm install typescript jest ts-jest @types/jest
npm install pg // PostgreSQL을 사용하는 예시

2. 데이터베이스 연동 모듈 구성

타입스크립트로 데이터베이스 연동 모듈을 작성합니다. 이 모듈은 데이터베이스와의 연결을 설정하고, 쿼리를 실행하는 기능을 제공해야 합니다.

// db.ts
import { Pool } from 'pg';

const pool = new Pool({
  user: 'your_username',
  host: 'localhost',
  database: 'your_database',
  password: 'your_password',
  port: 5432,
});

export async function query(text: string, params: any[]) {
  const start = Date.now();
  const res = await pool.query(text, params);
  const duration = Date.now() - start;
  console.log('executed query', { text, duration, rows: res.rowCount });
  return res;
}

3. 테스트 작성

Jest를 사용하여 데이터베이스 연동 모듈을 테스트하는 코드를 작성합니다. 테스트를 위해 가짜 데이터베이스를 사용하거나, 테스트용 데이터베이스를 구축하여 테스트를 수행할 수 있습니다.

// db.test.ts
import { query } from './db';

test('올바른 SQL 쿼리 테스트', async () => {
  const res = await query('SELECT $1::text as message', ['Hello world!']);
  expect(res.rows[0].message).toBe('Hello world!');
});

4. 테스트 실행

마지막으로, Jest를 사용하여 작성한 테스트를 실행합니다.

npx jest

이제 타입스크립트와 Jest를 사용하여 데이터베이스 연동을 테스트하는 방법에 대해 알아보았습니다. 데이터베이스 연동 모듈을 구성하고, Jest를 통해 해당 모듈을 효과적으로 테스트할 수 있습니다.