Golang의 초기 고환
노쏘 main.go:
import (
"errors"
"fmt"
"log"
)
func main() {
result, err := divide(100.0, 10.0)
if err != nil {
log.Println(err)
return
}
fmt.Println("Result: ", result)
}
func divide(x, y float32) (float32, error) {
var result float32
if y == 0 {
return result, errors.New("divisor cannot be zero")
}
result = x / y
return result, nil
}
Divide()는 테스트를 위한 기능입니다.
Primeiramente, vamos criar um arquivo chamado main _test .go, teste em Go devem seguir este padrão de nome, finalizando semper com o _test.go, assim, ao execuarmos o teste, o compilador saberá que deve rodar os testes do projeto.
아르퀴보 *main_test.go *
var tests = []struct {
name string
dividend float32
divisor float32
expected float32
isErr bool
}{
{"valid-data", 100.0, 10.0, 10.0, false},
{"invalid-data", 100.0, 0.0, 0.0, true},
{"expect-5", 50.0, 10.0, 5.0, false},
}
Toda função de teste deve receber o ponteiro **testing.T*
func TestDivision(t *testing.T) {
for _, testCase := range tests {
got, err := divide(testCase.dividend, testCase.divisor)
if testCase.isErr {
if err == nil {
t.Error("expected an error but did not get one")
}
} else {
if err != nil {
t.Error("did not expected an error but got one", err.Error())
}
}
if got != testCase.expected {
t.Errorf("the result we got %f is different than the expected %f result", got, testCase.expected)
}
}
}
Esta parte do nosso código é onde estamos definindo os dados que rodaremos no nosso 루프, 로고 abaixo.
Essa é uma alternativa, ao invés de ter uma função separada para cada teste, podemos criar um slice de struct com todos os casos de testes que queremos.
var tests = []struct {
name string
dividend float32
divisor float32
expected float32
isErr bool
}{
// casos de teste
{"valid-data", 100.0, 10.0, 10.0, false},
{"invalid-data", 100.0, 0.0, 0.0, true},
{"expect-5", 50.0, 10.0, 5.0, false},
}
Para executar os testes, basta executar o comando:
go test
Neste primeiro momento, estou utilizando a biblioteca padrão do go para testar. Minha ideia neste repositório https://github.com/bbwithpointers/golang-tests-study é testar alguns frameworks de testes, além da lib padrão e fazer pequenas documentações de uso por aqui. Qualquer sugestão é bem vinda. =)
Reference
이 문제에 관하여(Golang의 초기 고환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bbwithpointers/iniciante-testes-em-golang-54jg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)