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 | 실행중인 도커 프로세스 확인 |