-
Jest - beforeEachFrameWork/Jest 2023. 3. 6. 17:20
BeforeEach
여러개의 테스트에 공통된 code가 있다면 beforeEach안에 넣어서 반복을 줄일수 있다.
Jest 파일 구조
위 구조에서 4개의 test case에서 공통되는 코드들이 있다면 beforeEach라는 곳에 넣어 주면 모든 test들이 실행 되기 전에 beforeEach안에 들어 있는 것이 먼저 실행되고 그 다음에 그안에 들어 있는 test들이 각각 실행이된다.
혹시 특정 describe안에만 들어있는 것이 있다면 해당 describe안에 beforeEach를 넣어 줘도 된다.
beforeEach(() => { req = httpModcks.createRequest(); res = httpMocks.createResponse(); next = null; });
현재 위 코드에서 beforeEach에 넣어 줘야 할 것은 httpMock로 생성한 req와 res이다.
정리
const productController = require("../../controller/products"); const productModel = require("../../models/Product"); const httpMocks = require("node-mocks-http"); const mockProduct = require("../data/mock-product.json"); productModel.create = jest.fn(); let req, res, next; beforeEach(() => { req = httpMocks.createRequest(); res = httpMocks.createResponse(); next = null; }); describe("Product Controller Create", () => { beforeEach(() => { req.body = mockProduct; }); it("should have a createProduct function", () => { expect(typeof productController.createProduct).toBe("function"); }); it("should call ProductModel.create", () => { productController.createProduct(req, res, next); expect(productModel.create).toBeCalledWith(mockProduct); }); });
[출처 -
'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 - create( ) - node-mock-http (0) 2023.03.06 Jest - TDD 개발 방식 순서 (0) 2023.03.06 단위 테스트(Unit Test)에 대하여 (0) 2023.03.06