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 }
その後、テストを再度実行します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3