TIL

Jest와 Docker

2022.11.17

Jest - event test

import { fireEvent, render, screen } from "@testing-library/react";

it("버튼을 눌렀을 때, 제대로 작동하는지 테스트하자!", () => {
  render(<CounterStatePage />);
  fireEvent.click(screen.getByRole("count-button"));
  expect(screen.getByRole("count")).toHaveTextContent("1");
});
  • fireEvent: 이벤트를 실행한다
  • getByRole: jsx 요소의 role 어트리뷰트를 매개로 요소를 선택

Jest - mocking

가짜(Mock) 데이터를 만들어서 데이터 통신을 테스트하는 것. apollo/client는 MockedProvider를 제공한다.

Jest - 스냅샷 테스트

기존에 찍어뒀던 사진(스냅샷)과 현재 테스트 대상 컴포넌트가 동일한지 여부를 검증하는 방식.

it("스냅샷 테스트", () => {
  const result = render(<JestUnitTestPage />);
  expect(result.container).toMatchSnapshot();
});

2022.11.09

지옥의 강의 촬영 주간. JS Deep dive를 빠르게 훑으며 JS 원론에 대한 이해를 기초부터 쌓아가는 중.

2022.11.02

Mongodb 설치 & 실행

brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community

MongoDB는 기본적으로 27017 포트에서 실행된다.

Docker-compose를 이용한 server & mongoDB 동시 실행

version: "3.3"
services:
  my_backend:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 4000:4000
  my_database:
    image: mongo:latest
    ports:
      - 27017:27017

Mongoose

Mongoose는 Node.js와 MongoDB를 위한 ODM(Object Data Mapping)이다.

const boardSchema = new mongoose.Schema({
  writer: String,
  title: String,
  contents: String,
});

export const Board = mongoose.model("Board", boardSchema);

2022.11.01

Docker

컨테이너 기반 오픈소스 가상화 플랫폼. 컨테이너란 Host OS 상에서 리소스를 논리적으로 구분하여 마치 별도의 서버인 것처럼 사용할 수 있게 하는 기술.

FROM node:16
WORKDIR /my_backend/
COPY ./package.json /my_backend/
RUN yarn install
COPY . /my_backend/
CMD node index.js
명령어내용
docker build .도커 이미지 빌드
docker images빌드한 도커 이미지 목록 확인
docker run [IMAGE_ID]도커 이미지 실행
docker ps실행중인 도커 프로세스 확인