
520
자바에서 코틀린으로
)
}
private fun checkReadTableWithHeader(
lines: List<String>,
withSplitter: (String) -> List<String> = splitOnComma,
shouldReturn: List<Map<String, String>>,
) {
assertEquals(
shouldReturn,
readTableWithHeader(
lines.asSequence().constrainOnce(),
splitter = withSplitter
).toList()
)
}
이 단계가 중요하다.
17
장에서 본 것처럼, 테스트에서 패턴을 찾아서 (
checkReadTable
같
은) 함수로 표현하는 것은 테스트를 읽는 독자가 코드가 무슨 일을 하는지 이해하는 데 도움이
되고 테스트를 작성하는 개발자가 테스트가 미처 검사하지 못하는 조건을 찾는 데도 도움이 된
다. 예를 들어 헤더에 들어있는 열의 숫자보다 본문 각 줄의 필드가 더 많거나, 역으로 헤더에
들어있는 열의 숫자보다 본문 각 줄의 필드가 적으면 어떤 일이 벌어질까? 우리가 테스트 주도
개발을 진행하면서 빠른 피드백을 위해 작성한 테스트는
API
에 대해 다른 사람들과 의사소통
하거나, 코드의 문제점을 찾거나, 구현을 다시 ...