프로젝트를 진행하며 mock test 코드를 mocha로 작성했었다.
하지만 이번에 실제 테스트 코드를 기획하며, Jest로 변경하게 되었는데 이유는 다음과 같다.
const { makeUser } = require("../controllers/user-controller");
describe("makeUser", () => {
const req = {
body: { email: "test@naver.com", password: "1234", nickname: "Pray123" },
};
const res = {
status: jest.fn(() => res),
send: jest.fn(),
};
test("회원가입 완료 후 200 응답", async () => {
await makeUser(req, res);
expect(res.send).toBeCalledWith(200);
});
test("닉네임 중복시 403 응답", async () => {
req.body.email = "test@gmail.com";
await makeUser(req, res);
expect(res.send).toBeCalledWith(403);
});
test("이메일 중복시 403 응답", async () => {
req.body.email = "test@naver.com";
req.body.nickname = "Pray2";
await makeUser(req, res);
expect(res.send).toBeCalledWith(403);
});
test("테스트용 회원2 생성", async () => {
req.body.email = "test@gmail.com";
await makeUser(req, res);
expect(res.send).toBeCalledWith(200);
});
});
//뒷부분 생략
일단 user controller에 대한 대략적인 테스트코드를 작성한 상태이고, 기본 모듈 작동만 테스트한뒤 supertest를 이용한 통합 테스트를 더 구현할 예정이다.