또한 타입 안전한 방식으로 ListName 타입에 대해서만 작동하는 함수와 모든 문자열(String 타입)에 대해 작동하는 함수를 구별할 수 있는 것도 유용하다. 같은 이유로 사용자 이름을 저장하기 위한 타입을 정의하자.
data class User(val name: String)
마지막으로 할 일 목록에 들어갈 각 항목의 타입을 정의해야 한다.
data class ToDoItem(val description: String)
enum class ToDoStatus { Todo, InProgress, Done, Blocked }
description은 수행할 작업에 대한 설명이며, 어떤 텍스트든 가능하므로 문자열 타입을 유지하는 것이 좋다. 지금은 테스트만 작성하면 되기 때문에 타입을 가능한 적게 정의할 것이다. 항목에 대한 더 자세한 내용은 다음 장에서 다루겠다.
인수 테스트 실행
클래스가 준비되면 드디어 인수 테스트를 컴파일할 수 있다. 테스트의 단언문을 약간만 변경하면 된다.