-
Jest - create( ) - node-mock-httpFrameWork/Jest 2023. 3. 6. 16:45
product.create( )
아직 저장할 Product 데이터를 넣어 주지 않았기 때문에 실제로 db에 저장할 data를 넣어준다.
몽구스 모델을 이용한 데이터 저장
const product = require('../models/Product'); //product.create(); product.create(req.body);
위와 같이 req 객체를 이용해서 요청에 들어온 body를 create메소드에 인자로 넣어줘서 데이터베이스에 저장해준다. 그렇기 때문에 단위 테스트에서도 req객체가 필요하다 그렇다면 어떻게 이 req객테를 단위테스트에서 이용할까?
node-mock-http 모듈이용
const httpModcks = require("node-mocks-http"); let req = httpMocks.createRequest(); let res = httpMocks.createResponse();
node-mock-http 모듈을 이용해서 expressJS 애플리케이션 라우팅 함수를 테스트하기 위한 http객체(request,response)를 얻는다.
const mockProduct = require("../data/mock-product.json"); req.body = mockProduct; productController.createProduct(req,res,next);
req객체를 얻었다면 req.body안에다가 저장해줄 product를 넣어준다.
const mockProduct = require("../data/mock-product.json"); req.body = mockProduct; productController.createProduct(req,res,next); expect(Product.create).toBeCalledWith(mockProduct);
expect와 matcher를 통해서 데이터베이스에 넣을 data가 되는 부분 코드를 테스트 해본다.
[출처 -
'FrameWork > Jest' 카테고리의 다른 글
Jest - Module Function2 (mock implementations, mock Name) (0) 2023.03.09 Jest - Mock Function1 (모듈 mocking jest.fn( ), jest.mock( )) (0) 2023.03.09 Jest - beforeEach (0) 2023.03.06 Jest - TDD 개발 방식 순서 (0) 2023.03.06 단위 테스트(Unit Test)에 대하여 (0) 2023.03.06