미해결
습관부터 바꿔주는 Node.js & Express 기초
Express 사용하면서 Jest 테스트 관련해서 질문 드립니다.
// Axios.test.ts
import axios from 'axios';
import ManagerService from "./ManagerService";
jest.mock('axios');
const mockedAxios = axios as jest.Mocked<typeof axios>;
describe("Axios Test", () => {
let managerService = new ManagerService();
it("should mock axios get call", async () => {
mockedAxios.get.mockResolvedValue({
data: [
{
corporation: "inflearn"
}
],
});
const test = await managerService.axiosTest("inflearn");
expect(test).toEqual([
{
corporation: "inflearn"
}
]);
expect(mockedAxios.get).toHaveBeenCalledWith(`${process.env.SERVER_URL}/corporation/info`, {
params: { corporation: "inflearn" },
});
});
});
위와 똑같은 코드로 테스트를 진행했고, 본 코드에서는 약간의 차이만 있었습니다.하지만 아직 왜 그렇게 되는지 알지 못하여서 강사님께 여쭤보려고 합니다.1번 코드 ( 테스트가 잘 동작하는 코드 )axiosTest = async (corporation: string) => {
const response = await axios.get(`${process.env.SERVER_URL}/corporation/info`, {
params: {
corporation: corporation,
},
});
if (!response) {
throw new Error("값이 없음");
}
return response.data;
};
2번 코드 ( 값이 없음으로 에러가 발생하는 코드 )axiosTest = async (corporation : string) => {
const site = await axios({
method: 'get',
url: `${process.env.SERVER_URL}/corporation/info`,
params: {
corporation : corporation
},
})
if(!site) {
throw new Error("값이 없음");
}
return site.data
}
둘의 차이점에 대해서 알 수 있을까요?