괴발개발 성장기

회사생활/개발일지

Go언어로 테스트케이스 작성법

지니유 2021. 1. 19. 20:26
반응형

2021.01.18 ~ 2021.01.22 TestCase 교육

# 시작하는방법

1) 폴더안에 go파일 하나 생성한 후
2) ctrl+shift+T 클릭하면
3) 파일명_test.go 파일 생성

파일 생성하는 방법

4) then을 수행하기 위한 준비

  • goland 실행 -> Terminal에 다음 명령어를 입력하여 패키지 설치
    
    go get github.com/stretchr/testify/assert

5) 파일명_test.go 파일 import에 추가


import (
    "github.com/stretchr/testify/assert"
    "testing"
)

6) given-when-then 패턴 사용
매번 "//" 주석으로 분리해서 코드 작성


func 함수명(t *testing.T) {
     //given
     //when
    //then
}

<예시 코드 작성>

math.go

package TestCode

import (
	"github.com/stretchr/testify/assert"
	"testing"
)


func TestPlus(t *testing.T) {
	// given
	a := 10
	b := 20

	//when
	actual := plus(a, b)

	//then
	assert.Equal(t, 30, actual)

}

func TestSum(t *testing.T) {
	a1 := 1
	a2 := 2
	a3 := 3

	actual := Sum(a1, a2, a3)

	assert.Equal(t, 6, actual)
}

func TestDiv(t *testing.T) {
	a1 := 2.0
	a2 := 3.0

	actual, _ := Div(a1, a2)

	assert.Equal(t, a1/a2, actual)
}

math_test.go

package TestCode

import (
	"github.com/stretchr/testify/assert"
	"testing"
)

func plus(x int, y int)  int {
	return x+y
}

func Sum(nums ...int)  int {
	total :=0
	for _, num:= range nums{
		total += num
	}
	return total
}

func Div(a float64, b float64) (float64, error) {
	if b==0{
		return 0.0, errors.New("0은 나눌수없습니다.")

	return a/b, nil
 }
}

* terminal에서 실행

 go test
 

* 결과물

Test 성공한 모습
Test 실패한 모습

 

반응형