"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 이동 중에도 단위 테스트

이동 중에도 단위 테스트

2024-08-01에 게시됨
검색:650

Unit Test At Go

Go는 단위 테스트 목적을 위한 다양한 도구가 포함된 테스트 패키지를 제공합니다.

준비
연습해 보겠습니다. 먼저 큐브 구조체를 준비하고 구조체의 결과 개체 변수는 나중에 테스트 자료로 사용됩니다.

package main

import "math"

type Cube struct {
 Sisi float64
}
func (k Cube) Volume() float64 {
 return math.Pow(k.Sisi, 3)
}
func (k Cube) Area() float64 {
 return math.Pow(k.Sisi, 2) * 6
}
func (k Cube) circumference() float64 {
 return k.Sisi * 12
}

training1.go 파일에 위의 코드를 저장합니다.

package main
import "testing"
var (
cube Cube = Cube{4}
volume Should float64 = 64
area Should float64 = 96
circumference Should float64 = 48
)
func TestCalculateVolume(t *testing.T) {
t.Logf("Volume : %.2f", cube.Volume())
if cube.Volume() != volumeShould {
t.Errorf("WRONG! should be %.2f", volumeShould)
}
}
func TestCalculateSurface(t *testing.T) {
t.Logf("Area : %.2f", cube.Area())
if cube.Area() != areaShould {
t.Errorf("WRONG! should be %.2f", areaShould)
}
}
func TestCalculatePerimeter(t *testing.T) {
t.Logf("Perimeter : %.2f", cube.Perimeter())
if cube.Perimeter() != circumferenceShould {
t.Errorf("WRONG! should be %.2f", circumferenceShould)
}
}

t.Logf() 메소드는 로그를 표시하는 데 사용됩니다. 이 메서드는 fmt.Printf() 와 동일합니다.
Errorf() 메서드는 테스트 중에 실패가 발생했다는 설명이 뒤따르는 로그를 표시하는 데 사용됩니다.
테스트를 실행하는 방법은 go test 명령을 사용하는 것입니다. 테스트하는 구조체가 bab55.go 파일에 있기 때문에 go test를 이용해 테스트를 실행할 때 bab55_test.go, bab55.go 파일명을 인자로 적어줘야 합니다. -v 또는 verbose 인수는 테스트 중에 모든 로그 출력을 표시하는 데 사용됩니다.
아래 이미지와 같이 애플리케이션을 실행하면 실패한 테스트가 없음을 확인할 수 있습니다. 좋습니다. 그런 다음 Keliling() 메서드의 계산 공식을 변경해 보세요. 이 변경의 목적은 테스트가 실패할 때 실패 표시가 어떻게 나타나는지 확인하는 것입니다.

func (k Cube) Perimeter() float64 {
return k.Side * 15
}

그런 다음 다시 테스트를 실행하세요.

릴리스 선언문 이 글은 https://dev.to/sukmarizki04/unit-test-at-go-393f?1 에서 복제되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3