Go言語でのユニットテストの概要

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 测试用例的函数
      

おすすめ

転載: blog.csdn.net/kuangshp128/article/details/103731442