Go fornece um pacote de testes, contendo muitas ferramentas para fins de testes unitários.
Preparação
Vamos apenas praticar, primeiro prepare uma estrutura Cube, a variável de objeto resultante da estrutura será usada posteriormente como material de teste.
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 }
Salve o código acima no arquivo 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) } }
O método t.Logf() é usado para exibir um log. Este método é equivalente a fmt.Printf() .
O método Errorf() é usado para exibir um log seguido por uma declaração de que ocorreu uma falha durante o teste.
A maneira de executar o teste é usar o comando go test. Como a estrutura que está sendo testada está no arquivo bab55.go, ao executar o teste usando go test, os nomes dos arquivos bab55_test.go e bab55.go precisam ser escritos como argumentos. O argumento -v ou detalhado é usado para exibir todas as saídas de log durante o teste.
Execute o aplicativo conforme mostrado na imagem abaixo, percebe-se que nenhum teste falhou. OK, então tente alterar a fórmula de cálculo do método Keliling(). O objetivo desta mudança é descobrir como o marcador de falha aparece quando um teste falha.
func (k Cube) Perimeter() float64 { return k.Side * 15 }
Depois disso, execute o teste novamente.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3