티스토리 뷰

Go 에서는 유닛 테스트를 자체적으로 지원한다. 간단하게 테스트하는 방법을 적어놓는다.

 

1. 원래 파일

package main

import "fmt"

// test.go

func square(x int) int {
	return 81
}

func main() {
	fmt.Println(square(9))
}

2. 테스팅 파일

package main

// test_test.go

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestSquare1(t *testing.T) {
	result := square(9)
	if result != 81 {
		t.Errorf("square 9 is 81 but %d\n", result)
	}
}

func TestSquare2(t *testing.T) {
	result := square(3)
	if result != 9 {
		t.Errorf("square 3 is 9 but %d\n", result)
	}
}

func TestSquare3(t *testing.T) {
	assert := assert.New(t)
	assert.Equal(81, square(9), "square 9 is 81")
}

func TestSquare4(t *testing.T) {
	assert := assert.New(t)
	assert.Equal(9, square(3), "square 3 is 9")
}

형식

1. 테스트하고자 하는 파일이 xxx.go 일 때 테스팅 파일명은 xxx_test.go 이다.

2. testing 패키지 import 해야한다.

3. 테스트코드는 func TestYyy(t *testing.T) 형식이다. (함수명 = Test + 대문자로시작)

 

외부 테스트 패키지  :

github.com/stretchr/testify

=> 다운 : go get github.com/stretchr/testify 

=> module에 알아서 잘 들어가 있음

=> 해당 패키지 자세한 사용은 해당 패키지 문서 참고

https://github.com/stretchr/testify

 

GitHub - stretchr/testify: A toolkit with common assertions and mocks that plays nicely with the standard library

A toolkit with common assertions and mocks that plays nicely with the standard library - GitHub - stretchr/testify: A toolkit with common assertions and mocks that plays nicely with the standard li...

github.com

 

테스트 방법

 

1. 터미널 : go test    /    go test -run 테스트함수명 (특정 테스트함수만 테스트)

2. testing 패키지 사용 시 Error로 처리하면 실행 종료, Fail 로 처리하면 계속 진행

 

위 테스팅 파일 실행 결과

 

1. 그냥 위 test_test.go 로 test.go 테스트

TestSquare2 의 경우 기본적인 Errorf 를 사용하였기에 에러 메시지만 보여줌

TestSquare4 의 경우 testify 패키지의 assert를 사용하였기에 예측값과 실제값 등 더 자세히 보여줌

 

2. test.go에서 Square 리턴 값 x * x 로 변경 후 테스트

'메모' 카테고리의 다른 글

PS Rust 입출력  (0) 2023.01.09
Ubuntu Openssl 설치  (0) 2022.11.20
golang 문자열 입출력 공백 포함하기  (0) 2022.02.15
golang 입출력 빠르게  (0) 2022.02.15
Go - slice 기본 내용 정리  (0) 2022.01.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함