IT_World
[Golang] test GoConvey 테스트 프레임워크 라이브러리 본문
GoConvey : Golang 테스트 프레임워크 라이브러리
GoConvey 설치방법
다운로드 :
https://golang.org/dl/ 에서 윈도우, 리눅스, 맥에서 설치 프로그램을 내려받기
mac shell:
1.설치
$ brew install go
2.버전 업그레이드
$brew upgrade go
ubuntu shell:
1.설치
$ sudo apt-get install golang-go
2.버전 업그레이드
$ sudo add-apt-repository ppa:longsleep/golang-backports
$ sudo apt-get update
$ sudo apt-get install golang-go
3. 또는 go get으로 패키지 설치
$ go get github.com/smartystreets/goconvey
/home/go/GoConvey source code & 패키지 파일 생성
예제
package test
//해당 소스코드를 실행 파일로 인식하게 해주도록 main이라고 선언하지 않고 테스트를 위해 다른 이름 적기
import (
"testing"
"github.com/smartystreets/goconvey/convey"
)
//testing과 convey를 가져온다.
func TestFunc(t *testing.T) (
convey.Convey("starting value", t, func() {
x := 0
convey.Convey("incremented", func() {
x++
convey.Convey("ShouldEqual", func() {
convey.So(x, convey.ShouldEqual, 1)
})
})
})
//테스트 함수를 만들고 값이 증가되었을 때 지정한 값과 같은지 검사할 수 있다.
convey.Convey("Numeric comparison", t, func() {
x := 1
convey.So(x, convey.ShouldBeGreaterThan, 0)
convey.So(x, convey.ShouldBeLessThan, 2)
//지정한 값보다 크거나 작은지 검사할 수 있다.
convey.So(x, convey.ShouldBeBetween, 0, 2)
convey.So(x, convey.ShouldNotBeBetween, 5, 10)
})
//두 수 사이에 존재하는지 검사할 수 있다.
convey.Convey("Container", t, func() {
intArr := []int{1, 2, 3}
intMap := map[int]int{1: 1, 2: 2, 3: 3}
convey.So(intArr, convey.ShouldContain, 2)
//슬라이스와 맵으로 수가 포함되는지 검사할 수 있다.
convey.So(1, convey.ShouldBeIn, []int{1, 2, 3})
//슬라이스에 포함된 수에서 존재하는지 검사할 수 있다.
convey.So([]int{}, convey.ShouldBeEmpty)
//슬라이스에 포함된 수에서 존재하는지 검사할 수 있다.
convey.So([]int{}, convey.ShouldBeEmpty)
})
//비어있는지에 대한 여부를 검사할 수 있다.
convey.Convey("String", t, func() {
convey.So("helloworld", convey.ShouldStartWith, "h")
convey.So("helloworld", convey.ShouldNotStartWith, "e")
convey.So("helloworld", convey.ShouldEndWith, "world")
convey.So("helloworld", convey.ShouldNotEndWith, "hello")
//문자열의 시작과 끝에 어떤 문자가 있는지에 대하여 검사할 수 있다.
convey.So("helloworld", convey.ShouldContainSubstring, "ow")
convey.So("helloworld", convey.ShouldNotContainSubstring, "worldhello")
})
//단순하게 어떤 문자열이 포함되었는지 검사할 수 있다.
convey.Convey("Typechecking", t, func() {
convey.So(10, convey.ShouldHaveSameTypeAs, 0)
convey.So(10, convey.ShouldNotHaveSameTypeAs, "10")
})
}
//검사하려는 값의 타입을 비교할 수 있다.
'Programming language > go lang' 카테고리의 다른 글
[Go lang] shell 창에서 man Makefile 실행 (0) | 2021.10.01 |
---|---|
[Go Lang] makefile로 build를 한 번에 (0) | 2021.09.30 |
[golang] 폴더/파일 감시 fsnotify (0) | 2021.09.29 |
[go lang] go get go install 차이점 및 설치, 사용방법 (0) | 2021.09.15 |
Ubuntu 18.04 LTS에 Golang 최신버전 설치하기 (0) | 2021.09.13 |
Comments