이번 편의 목표: 연체료가 0일과 3일에서 기대한 금액인지 go test로 확인합니다.
테스트 파일 이름은 _test.go로 끝납니다. testing 패키지의 *testing.T로 실패를 알립니다. 기대와 다르면 Fatalf가 그 테스트를 실패로 끝냅니다. 11편의 book/fee.go는 그대로 둡니다.
book/fee_test.go를 추가합니다.
package book
import "testing"
func TestZeroDaysIsFree(t *testing.T) {
if OverdueFee(0) != 0 {
t.Fatalf("0일 연체료가 0이 아닙니다")
}
}
func TestThreeDays(t *testing.T) {
if OverdueFee(3) != 300 {
t.Fatalf("3일 연체료가 300이 아닙니다")
}
}모듈 폴더에서 다음을 실행합니다.
go test ./book
두 테스트가 PASS이면 함수가 두 경우를 만족한 것입니다. 테스트 패키지를 book으로 두면 같은 폴더의 OverdueFee를 그대로 부릅니다. go run . 은 테스트 파일을 실행 파일에 넣지 않습니다.
직접 해 보기
OverdueFee(-2)가 0인지 보는 테스트를 하나 추가하고 go test ./book 을 다시 실행하세요.
해설
함수는 0 이하를 모두 0으로 돌립니다. -2도 0이므로 새 테스트는 통과합니다. 기댓값을 100으로 적으면 FAIL과 적어 둔 문구가 출력됩니다.
COMMENTS
댓글 0
이 글에 대한 의견이나 질문을 남겨 주세요.
댓글은 구글이나 카카오로 시작한 뒤에 남길 수 있습니다.
등록된 댓글이 없습니다.