[nodejs] GraphQL 테스트 작성 방법

이 문서에서는 Node.js에서 GraphQL 테스트 작성을 위한 효과적인 방법에 대해 설명합니다.

1. 테스트 환경 설정

먼저, jestsupertest 라이브러리를 사용하여 GraphQL 서버의 엔드포인트를 테스트하는 환경을 설정해야 합니다.

npm install jest supertest --save-dev

2. GraphQL API 테스트

다음으로, supertest를 사용하여 GraphQL API 테스트를 작성할 수 있습니다. 아래는 간단한 예시입니다.

const request = require('supertest');
const app = require('../server'); // 실제 GraphQL 서버의 엔드포인트

describe('GraphQL API 테스트', () => {
  test('특정 쿼리 테스트', async () => {
    const query = `
      {
        // 여기에 테스트할 쿼리 작성
      }
    `;
    const res = await request(app)
      .post('/graphql')
      .send({ query });

    expect(res.status).toBe(200);
    expect(res.body).toHaveProperty('data');
  });
});

3. Mocking을 활용한 테스트

GraphQL 테스트에서 서버의 의존성을 모킹하고 싶을 때는 jest의 모킹 기능을 활용할 수 있습니다. 예를 들어, 데이터베이스 쿼리를 모킹하여 테스트할 수 있습니다.

jest.mock('../database', () => {
  return {
    query: jest.fn().mockReturnValue({ /* 모킹된 데이터 */ })
  };
});

4. 요약

GraphQL 테스트를 작성하는 것은 애플리케이션의 안정성을 보장하는 데 중요합니다. Node.js에서는 supertestjest를 활용하여 효과적으로 GraphQL API를 테스트할 수 있습니다.

위의 예시는 간단한 테스트를 보여주기 위한 것이므로, 프로젝트에 따라 더 다양하고 복잡한 테스트를 작성할 수 있습니다.

참고 자료