1つは、コードをテストする従来の方法です。
ファイルに
main
関数を作成します
-
1.伝統的な書き方
package main import "fmt" // 定义一个求和的方法 func sum(n int) int { res := 0 for i := 0; i <= n; i++ { res += i } return res } func main() { res := sum(10) if res != 55 { fmt.Println("sum求和错误") } else { fmt.Println("sum求和正确") } }
-
2.
main
関数を使用することのデメリット- 不便なことに、
main
関数で呼び出す必要があるため、main
関数を変更する必要があります。プロジェクトが実行中の場合は、プロジェクトを停止することしかできません。 - 複数の関数や複数のモジュールをテストする場合、それらはすべて
main
関数に記述されているため、管理コードに役立たず、肥大化したように感じます。 - コードのパフォーマンスを検出できない、汎用モジュールの実行時間がわからない
- 不便なことに、
2.go
言語でのユニットテスト
-
1はじめに
Go
この言語には、単体テストとパフォーマンステストを実装するための軽量のテストフレームワークtesting
と組み込みgo test
コマンドが付属しています。testing
このフレームワークは、他の言語のテストフレームワークに似ています。このフレームワーク、またはフレームワークに基づいて、対応する機能のテストケースを作成できます。対応するストレステストケースを書き込みます -
2.単体テストを使用する利点
- 各関数が実行可能であり、操作の結果が正しいことを確認してください
- 記述されたコードのパフォーマンスが良好であることを確認します
- 単体テストは、プログラムの設計または実装における論理エラーを時間内に見つけ、問題を早期に明らかにし、問題の場所と解決策を促進します。パフォーマンステストの焦点は、プログラムが高い同時実行性の下で動作できるように、プログラム設計のいくつかの問題を見つけることです。 。それを安定させてください。
3、go
言語でのユニットテストの簡単な紹介
-
1.今すぐ
go
コードと同じレベルのディレクトリにxx_test.go
ファイルを作成します├── sum.go // 和上面的代码一样的 └── sum_test.go
-
2.
sum_test.go
コードpackage main import "testing" func TestSum(t *testing.T) { res := sum(10) if res != 55 { t.Fatalf("sum(10)不正确") } else { t.Logf("sum(10)正确") } }
-
3.コマンドラインで実行します
➜ test git:(master) ✗ go test -v # 执行的命令 === RUN TestSum --- PASS: TestSum (0.00s) sum_test.go:10: sum(10)正确 PASS ok github.com/dev/test 0.005s # 计算出这个方法执行的时间 ➜ test git:(master) ✗
-
4.
go
言語でのユニットテストの要約-
テストケースのファイルは、
fileName_test.go
[fileName
テストするファイルに応じて書き込む]で終わる必要があります。 -
テストケースの機能は
Test
、一般的に言えば、Test+
テストされる機能の名前で始まる必要があります -
テストケースの機能のパラメータは固定されています
t *testing.T
-
テストケースには複数のテスト機能が存在する可能性があります
-
テストケースを実行するための手順
go test
:操作が正しければログ出力はなく、間違っているとログが出力されますgo test -v
:正しい操作または間違った操作のログが出力されます
-
エラーが発生した場合は、を使用
t.Fatalf
して出力エラーメッセージをフォーマットし、プログラムを終了できます。 -
t.Logf
メソッドは対応するログを出力できます -
PASS
テストケースが正常に実行さFAIL
れ、テストケースが実行に失敗したことを示します -
フォルダ内に多数のファイルがある場合は、単一のファイルのメソッドをテストするだけです。
go test -v xx_test.go xx.go
-
ファイルに多くのテストケースメソッドがある場合は、1つのメソッドをテストするだけです
go test -v -test.run 测试用例的函数
-