mockfunction에 대해서
54
投稿した質問数 2
안녕하세요 선생님
mockfunction에 대해서 설명 듣다가 질문이 생겨 글 남깁니다.
mockfunction이 좋고 유용한 이유가 기존 함수를 변경할 수 있다는 점이라고 하셨는데 , 기존 함수를 변경해서 테스트를 왜 하는지 모르겠습니다 .추후 강의에서 나오는 부분일까요?
그러니까 "필요성"에 대해서 공감이 가지 않는 것 같습니다,, 개발한 함수가 잘 돌아가는지에 대해서 테스트하면 되는 것인데 왜 다른 함수로 바꿔서 테스트를하나요? 그게 버그잡기 등의 효과가 있나요? 있다면 예를 들면 어떤상황이 있을지 알려주심 넘 감사할것 같습니다. 감사합니다
回答 2
0
개발한 함수를 바꾸는 게 아니고, 개발한 함수가 사용하고 있는(또는 의존하고 있는) 다른 함수를 바꾸는 것입니다. 유닛 테스트의 목적은 내가 테스트하고싶은 함수 하나만 잘 돌아가나 테스트하는 것이지, 테스트하고싶은 함수 내부의 다른 라이브러리함수까지 잘 돌아가나 테스트하는 게 아닙니다. 내부의 다른 라이브러리 함수까지 테스트하는 것은 통합테스트라고 따로 있습니다.
예를 들어 a라는 함수가 있고, a 함수가 데이터베이스에 insert를 하는 함수를 호출한다고 하면, a 함수 테스트를 돌릴 때마다 데이터베이스에 값이 insert됩니다. 이런 걸 막으려면 insert하는 함수를 모킹하고, 단순히 호출되었는지만 체크하는 겁니다.
0
안녕하세요, 인프런 AI 인턴입니다.
김혜윤 님
mock function(모의 함수)을 사용하는 이유는 여러 가지가 있습니다. 개발한 코드가 잘 작동하는지 테스트할 때, 항상 모든 실제 종속성을 사용할 수 있는 것은 아닙니다. 모의 함수를 통해 다음과 같은 상황에서 유용하게 사용할 수 있습니다:
외부 종속성 제거: 어떤 함수가 외부 API나 데이터베이스에 의존하는 경우, 이를 호출하면 테스트가 느려지거나 결과가 예측할 수 없게 될 수 있습니다. 모의 함수를 사용하여 외부 종속성을 제거하고 빠르고 신뢰할 수 있는 테스트를 작성할 수 있습니다.
비정상적인 상황 시뮬레이션: 특정 오류나 경계 상황을 테스트하고자 할 때 실제로 그런 상황을 재현하기 어렵거나 위험할 수 있습니다. 예를 들어, 네트워크 오류나 서버 중단 상황을 테스트하려면 모의 함수를 통해 그러한 상황을 인위적으로 만들어낼 수 있습니다.
테스트 격리: 단위 테스트는 테스트할 항목을 독립적으로 유지하는 것이 중요합니다. 모의 함수를 사용하면 다른 부분에서 영향을 받지 않도록 만들 수 있습니다.
예를 들어, 결제 시스템을 개발할 때, 결제 API를 매번 호출하기 보다는 mock function으로 결제 성공 또는 실패를 시뮬레이션하여 다양한 시나리오를 테스트할 수 있습니다. 이것은 테스트 속도를 높이고 테스트 실행 비용을 줄입니다.
이해에 도움이 되셨길 바랍니다. 감사합니다.
참고 자료: Spring Boot Reference Documentation에서 모킹에 대한 예제들.
UserService, CertificationService 책임 분리 기준 질문
0
28
1
레이어드 아키텍처에서 도메인 중심 패키지 구조를 적용하거나 변화하는 시점이 있을까요?
1
49
2
POJO에서 Spring Test로 넘어갈 때 누락(해결됨)
0
36
1
섹션 4) 8. 실무 QA의 관찰 포인트 이해 강의 질문
0
43
1
tryMove(..) 메서드 ArrayIndexOutOfBoundsException 제보
1
67
2
AvailableUsers
0
47
1
선생님, 테스트 코드 제보 강의는 언제쯤 올라오나요?
0
76
2
mockfunction에 대해서
0
52
1
강의 교안
0
117
2
jest-extended 에러 해결
0
155
1
npx cross-env NODE_OPTIONS="$NODE_OPTIONS --experimental-vm-modules" jest 터미널 에러
1
196
1
안녕하세요 jest toHaveBeenCalledTimes 관련 질문드립니다.
0
166
2
안녕하세요 제로초님
0
166
1
제로초님 강의 교안을 볼 수 있는 곳이 있을까요?
0
234
3
jest.fn()으로 모킹 함수를 만들어 expect() 할 경우 undefined 출력됩니다
0
103
1
jest-extended 설정 중 TypeError
0
168
1
클래스는 어떻게 모킹하나요?
0
158
1
호출 순서 테스트, mock 객체, jest-extended 강의 내용중 TypeError가 나는데요!ㅠㅠ
0
137
1
모듈 모킹 시 메소드 동작 문제
0
160
1
vsCode 내에서 Jest 설정 할 때 setting.json 내 설정 시 궁금한 점이 있습니다.
0
442
1
비동기 함수 테스트 중 특정 케이스 에러
0
194
1
TS로 변경 시 "type": "module" 제거 이유가 궁금합니다.
0
299
2
jest.config.js 파일 내용 다른 분들 참고
0
329
2
강의 교안
0
257
2

