"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > Unit Test At Go

Unit Test At Go

Published on 2024-08-01
Browse:263

Unit Test At Go

Go provides a testing package, containing many tools for unit testing purposes.

Preparation
Let's just practice, first prepare a Cube struct, the resulting object variable of the struct will later be used as testing material.

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
}

Save the code above in the training1.go file

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)
}
}

The t.Logf() method is used to display a log. This method is equivalent to fmt.Printf() .
The Errorf() method is used to display a log followed by a statement that a fail occurred during testing.
The way to execute testing is to use the go test command. Because the struct being tested is in the bab55.go file, when executing the test using go test, the bab55_test.go and bab55.go file names need to be written as arguments. The -v or verbose argument is used to display all log output during testing.
Run the application as shown in the image below, it can be seen that no tests have failed. OK, then try changing the calculation formula for the Keliling() method. The purpose of this change is to find out how the fail marker appears when a test fails.

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

After that run the test again.

Release Statement This article is reproduced at: https://dev.to/sukmarizki04/unit-test-at-go-393f?1 If there is any infringement, please contact [email protected] to delete it
Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3