2023.05.22 - [분류 전체보기] - [Jest] Typescript + Express + Jest로 Service 테스트하기 - Mock, Sequelize
[Jest] Typescript + Express + Jest로 Service 테스트하기 - Mock, Sequelize
Express로 새로운 서비스를 작업하던 중, test를 작성해보기로 했다. routes, controllers, services, models 로 나눠진 계층 구조에서 service만 먼저 테스트하려 한다. 환경 설정 모듈 설치 npm install -D jest @types/
kongjino.tistory.com
(이전 글에서 이어지는 글입니다)
이번엔 controller에 대한 테스트를 작성해보겠다.
크게 달라지는 점은 없지만, request와 response를 넣어주는 방식에서 살짝 차이가 있다.
import { jest } from "@jest/globals";
import { mocked } from "jest-mock";
var httpMocks = require("node-mocks-http");
import { Controller } from "../../src/controllers";
jest.mock("../../src/controllers");
const mockController = mocked(Controller);
var req = httpMocks.createRequest();
var res = httpMocks.createResponse();
describe("< Controller >", () => {
var reqBody = {
Controller: ""
};
var resBody = {
Controller: expect["number"]
};
req.body = reqBody;
test("Controller, success 응답", async () => {
mockController.get.mockResolvedValue(resBody);
var data = await mockController.get(req, res);
expect(data).toBe(resBody);
});
});
http mocks 모듈을 사용하면 쉽게 request와 response 객체를 생성할 수 있다.
객체 생성 후, body 변수를 따로 만들어 사용하면 끝이다!
참고
https://www.npmjs.com/package/node-mocks-http
node-mocks-http
Mock 'http' objects for testing Express routing functions. Latest version: 1.12.2, last published: 2 months ago. Start using node-mocks-http in your project by running `npm i node-mocks-http`. There are 141 other projects in the npm registry using node-moc
www.npmjs.com
'Express' 카테고리의 다른 글
[Jest] Typescript + Express + Jest로 Service 테스트하기 - Mock, Sequelize (0) | 2023.05.22 |
---|---|
[Node js] JSON.parse(JSON.stringify()) 시 빈 문자열("")을 반환하는 문제 (0) | 2022.08.16 |