른록노트

[Javascript] Jest - Using with MongoDB 본문

Programming/[Javascript]

[Javascript] Jest - Using with MongoDB

른록 2021. 12. 6. 22:52

Using with MongoDB

Global Setup/TeardownAsync Test Environment API를 사용하여 Jest는 MongoDB와 원활하게 작동할 수 있습니다.

1. 먼저 @shelf/jest-mongodb를 설치하세요

Jest MongoDB는 MongoDB를 사용하여 테스트를 실행하는 데 필요한 모든 구성을 제공합니다.

npm i @shelf/jest-mongodb --save-dev

2. config를 수정하세요

jest.config.js`
---
module.exports = {  
preset: '@shelf/jest-mongodb',  
};
jest-mongodb-config.js
---
module.exports = {  
mongodbMemoryServerOptions: {  
binary: {  
version: '4.0.3',  
skipMD5: true,  
},  
autoStart: false,  
instance: {},  
},  
};

3. 테스트 코드를 작성하세요

mongodb.test.js
---
const config = require('../config/key');
const {MongoClient} = require('mongodb');

const collectionName = 'test';

let connection;
let db;

beforeAll(async () => {
  connection = await MongoClient.connect(config.mongoUrl, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
  });
  db = await connection.db();
});

afterAll(async () => {
  await connection.close();
});

describe('mongodb insert 테스트', () => {
  beforeEach(async () => {
    await db.collection(collectionName).deleteMany({});
  });

  it('테스트 collection에 insert 테스트', async () => {
    const users = db.collection(collectionName);

    const mockUser = {
      _id: 'some-user-id4',
      name: 'John4',
      email: 'test4@naver.com',
    };
    await users.insertOne(mockUser);

    const insertedUser = await users.findOne({_id: 'some-user-id4'});
    expect(insertedUser).toEqual(mockUser);
  });
});

4. 테스트 실행

npm run test

참고사이트

공식사이트 Using with MongoDB v27.2
공식사이트 jest-mongodb

진행사항

```

초급

  1. 공식 홈페이지에서 개념정리
  2. 공식 홈페이지에서 튜토리얼 or 가이드 실습하기 (진행)

중반

  1. 실제로 프로젝트 만들기
  2. 프로젝트 진행하면서 API DOC 찾아보며 정리하기

후반

  1. 오픈소스 컨트리뷰트
    ```
반응형
Comments