게시된 Reference 15편이 전부 규칙을 `### N. 제목` 으로 쓰고 적용 조건·예외·예시를 항목으로 쓴다. 내 15편은 규칙을 `**굵게**` 로, 나머지 셋을 문단으로 쓰고 있었다 — Studio 의 rules[]·applyWhen[]·exceptions[]·examples[] 는 배열이라 문단으로 두면 항목이 하나로 접힌다. 규칙 68개를 `### N. 제목` 으로 바꿨다 (편당 3~7개, 게시된 것은 4~10개) 적용 조건·예외·예시를 항목으로 갈랐다. 한 항목뿐이던 아홉 편은 조건을 나눠 적었다 주제 6 은 본문을 다시 썼다 — location = 이 정확히 일치하는 경로만 잡아 27개가 얼어붙은 구조, 여덟 곳이 우는 시점을 셋으로 가른 표, digest 를 다시 계산할 때 옛 값을 먼저 재현하는 이유. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
kind, slug, title, topic, topicName, project, status, verifiedOn, sourceRevision, source
| kind | slug | title | topic | topicName | project | status | verifiedOn | sourceRevision | source | |
|---|---|---|---|---|---|---|---|---|---|---|
| REFERENCE | an-expected-failure-must-not-be-counted-as-a-failure | 매번 우는 검사는 읽히지 않는다 — 기대된 실패는 조건을 적어 빼고 나머지는 전부 실패시킨다 | failure-drawn-as-absence | 실패를 없음으로 그린다 | TechLog | 게시 전 | 2026-09-04 | tech-log@2026-09-02 |
|
매번 우는 검사는 읽히지 않는다 — 기대된 실패는 조건을 적어 빼고 나머지는 전부 실패시킨다
배포 뒤 전 화면을 훑는 스윕이 기대된 404 를 실패로 셌다. 건강한 배포 아래에 매번 같은 빨간 줄이 남았고, 그 줄은 곧 읽히지 않게 됐다. 기대된 실패는 조건을 적어 빼고 나머지는 전부 실패시킨다.
관계
- 화면은 못 읽은 것을 없다고 말하지 않는다 같은 프로젝트에서 실패를 어떻게 다룰지 정한 짝이 되는 기준이다.
- 가드는 결함을 되돌려 실제로 멈추는 것을 확인한 뒤 커밋한다 검사가 실제로 무엇을 잡는지 확인하는 기준이다.
- 계약은 앵커라고 적었고 만드는 쪽은 경로를 만들었다 같은 스윕이 실제 결함을 잡아야 했던 사건이다.
목적
매번 우는 검사가 읽히지 않게 되는 것을 막는다.
규칙
1. 기대된 실패는 조건을 적어 뺀다
미리보기가 아직 없는 문서는 현재 미리보기를 물으면 404 를 답하고, 화면은 그것을 「미리보기를 만드세요」로 바꾼다. 이런 응답은 실패가 아니다.
2. 뺀 나머지는 전부 실패시킨다
조건에 걸리지 않는 4xx 와 5xx 는 모두 스윕을 실패시킨다.
3. 조건을 적을 수 없으면 빼지 않는다
조건 없이 빼면 진짜 실패도 같이 빠진다.
4. 뺀 조건을 사람이 읽을 수 있는 곳에 남긴다
왜 그 응답이 기대된 것인지 적혀 있지 않으면 다음 사람이 조건을 넓힌다.
적용 조건
- 배포 뒤 전 화면을 훑는 스윕처럼 결과를 사람이 훑어보는 검사를 만들 때
- 정상 동작이 오류 상태 코드로 나타나는 화면이 있는 서비스에서
- 같은 빨간 줄이 매번 남기 시작했을 때
예외
- 기계가 판정하고 사람이 결과를 읽지 않는 검사라면 빨간 줄이 쌓여도 무뎌지지 않는다. 그래도 통과 기준은 정해야 한다.
예시
- 미리보기가 없는 문서의 404 를 스윕이 실패로 셌다. 건강한 배포 아래에 매번 같은 빨간 줄이 남았다.
매번 늑대를 외치는 검사는 읽히지 않게 되고, 진짜 실패가 그 옆에 눈에 띄지 않은 채 앉아 있게 된다.
- 로그인 전 세션 탐침의 401 도 같은 부류라 같은 조건으로 제외하고, 나머지 4xx·5xx 는 전부 스윕을 실패시킨다.