테스트 주도

search 함수의 TDD 계약

검색 기능은 먼저 실패하는 테스트로 “어떤 줄을 돌려줘야 하는가”를 고정하고, 구현은 그 계약을 만족하도록 좁게 작성합니다.

실패 테스트

query와 contents를 준비하고 결과가 기대한 한 줄과 같은지 assert_eq!로 먼저 확인합니다.

시그니처

search(query: &str, contents: &str) -> Vec<&str>로 입력과 반환의 빌림 관계를 드러냅니다.

구현

contents.lines()를 순회하며 contains(query)가 true인 줄만 결과 벡터에 넣습니다.

실행 검증

cargo test로 함수 계약을 확인하고 cargo run으로 실제 파일 검색 출력도 확인합니다.