Language/Go

[Learn Go with Tests] Integer

잉퓨_ 2024. 7. 18. 00:46
728x90



해당 포스팅은 Learn Go with Tests Gitbook을 따라 실습한 내용을 정리한 문서입니다.

 

테스트 코드 작성하기

package integers

import "testing"

func TestAdder(t *testing.T) {
	sum := Add(2, 2)
	expected := 4

	if sum != expected {
		t.Errorf("expected '%d' but got '%d'", expected, sum)
	}

}

현재 상태에서 go test를 사용하게 되면 Add 함수가 없다는 오류가 발생한다. 이제부터 테스트를 실행할 수 있는 최소한의 코드를 작성한 뒤 결과에 대해 확인해보고자 한다.

package integers

func Add(a int, b int) int {
	return 0
}

adder.go 파일을 다음과 같이 작성하고 테스트를 실행해보자

함수를 작성할 때 두개 이상의 같은 타입의 정수를 가진다면 (x int, y int)도 가능하지만 (x, y int)와 같이 간결하게 작성하는 방식 또한 가능하다.

다음과 같이 나온다. 테스트는 올바르게 틀린 내용에 대해서 나타내주고 있다.

제대로 코드를 a+b로 고쳐보자

package integers

func Add(a, b int) int {
	return a + b
}

테스트를 실행하면 통과하게 된다.

리팩토링 하기

해당 내용에서는 리팩토링을 할 수 있는 내용이 크게 존재하지 않는다. 따라서, 반환인자의 이름을 개발자의 텍스트 편집이게서 추가하고자 한다.

adder_test.go에 다음과 같은 ExampleAdd 함수를 추가해보자

func ExampleAdd() {
    sum := Add(1, 5)
    fmt.Println(sum)
    // Output: 6
}

 

728x90