상황과 기대를 구조화하기
Ginkgo는 검사 대상을 상황과 문맥으로 나누고 각 조건에서 기대하는 동작을 명세로 표현한다. 공통 준비와 정리도 노드로 구성할 수 있다. 중첩 구조는 관련 조건을 묶는 데 유용하지만 깊이가 지나치면 한 검사의 실제 준비 상태를 읽기 어려워진다. 조건이 어디에서 만들어지는지 명확하게 유지한다.
순서와 병렬 실행
검사를 재현 가능한 무작위 순서로 실행하거나 병렬화할 수 있다. 순서를 바꾸면 숨어 있던 상태 의존을 발견하는 데 도움이 된다. 병렬 실행은 공유 데이터를 자동으로 안전하게 바꾸는 기능이 아니므로 독립적인 자원과 정리 정책을 설계한다. 시간 제한과 취소 문맥도 검사 코드가 올바르게 다루어야 한다.
실행기와 단언의 분리
Ginkgo는 Gomega와 자주 함께 쓰지만 명세 구성과 조건 검증의 역할은 다르다. 명령행 도구로 검사 생성과 실행, 필터링을 지원하며 보고서 출력도 제공한다. 일부 검사만 선택했을 때는 전체 검사가 실행된 것으로 오해하지 않는다. 단위 검사와 외부 자원을 사용하는 통합 명세도 서로 다른 환경 비용을 고려해 구성한다.