해결된 질문
작성
·
358
0
mysql을 사용하여 진행 중인 프로젝트가 있는데 tdd를 적용해보려고 합니다.
controllers/subscription.js
const db = require('../routes/database.js');
exports.subscribeCalendar=()=>{};
컨트롤러 코드는 위와 같고
test/unit/subscription.test.js
const subscriptionController=require("../../controllers/subscription")
describe("캘린더 구독",()=>{
test("subscribeCalendar 함수가 있을 겁니다.",()=>{
// subscriptionController.subscribeCalendar의 타입은 함수다.
expect(typeof subscriptionController.subscribeCalendar).toBe("function")
})
})
테스트 코드는 위와 같은데 컨트롤러에서 db를 임포트 하기 전에는 에러가 안 떴는데 임포트 한 후에
테스트는 통과하지만 아래와 같은 에러 메시지가 뜹니다. 검색해보니 단위테스트 할 때는 db 관련 코드는 넣지 말라고 하는데 그 원인일까요?
ReferenceError: You are trying to `import` a file after the Jest environment has been torn down.
이미 mysql로 진행 중이라 몽구스로 변경하기가 어려운데 에러메시지 무시하면 될까요..?
답변 1
0
안녕하세요 ~~~ 답장이 늦어서 죄송합니다 ~ 단위테스트는 말그래도 하나하나의 기능을 테스트 하는데 데이터베이스를 연결하면 다른 기능까지 연결이되게 됩니다. 그래서 단위테스트에서는 더미 데이터를 이용하시면 되고 통합 테스트에서 연결해주시면 됩니다 ~