ホームページ  >  記事  >  バックエンド開発  >  Go での単体テスト

Go での単体テスト

王林
王林オリジナル
2024-07-30 16:56:50956ブラウズ

Unit Test At Go

Go は、単体テストを目的とした多くのツールを含むテスト パッケージを提供します。

準備
練習しましょう。最初に Cube 構造体を準備します。構造体の結果として得られるオブジェクト変数は、後でテスト材料として使用されます。

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 または冗長引数は、テスト中にすべてのログ出力を表示するために使用されます。
以下の画像に示すようにアプリケーションを実行すると、失敗したテストがないことがわかります。それでは、Keliling() メソッドの計算式を変更してみてください。この変更の目的は、テストが失敗したときに失敗マーカーがどのように表示されるかを確認することです。

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

その後、テストを再度実行します。

以上がGo での単体テストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。