테스트를 위해 실패 지점을 넣으려 합니다. 운영 코드의 내부 구현을 과하게 노출하지 않고 무엇을 주입하나요?
꼬리 질문을 독립 문항으로 확장했습니다. 원래 문항에서 맥락 보기 →
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
01
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
네트워크·시계·저장소·scheduler처럼 이미 의미 있는 경계에 실패를 주입합니다. 임의 private 변수마다 test flag를 추가하면 구현과 테스트가 과하게 결합됩니다.
commit 전후·응답 유실·소유권 전환 같은 관찰 가능한 경계를 골라 최소 반례를 만듭니다. 운영에서는 기본 구현이 정상 경로만 수행하고 주입 권한을 외부 입력이 켜지 못하게 합니다. fake와 실제 adapter의 계약 테스트를 함께 유지합니다.
02
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- 네트워크·시계·저장소·scheduler처럼 이미 의미 있는 경계에 실패를 주입합니다. 임의 private 변수마다 test flag를 추가하면 구현과 테스트가 과하게 결합됩니다.
- fake와 실제 adapter의 계약 테스트를 함께 유지합니다.
03
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- 다음 핵심 구분을 반대로 설명하거나 성립 조건을 생략한다: 네트워크·시계·저장소·scheduler처럼 이미 의미 있는 경계에 실패를 주입합니다.
04
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.