ホームページ  >  記事  >  バックエンド開発  >  golang 関数のテスト駆動開発プロセスを実装するにはどうすればよいですか?

golang 関数のテスト駆動開発プロセスを実装するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-04-29 08:03:01959ブラウズ

TDD プロセスは、Go 関数の正確性と動作の文書化を保証するのに役立ちます。手順: 1) go test コマンドを使用してテストを作成し、関数とテスト ケースを定義します。 2) テストケースの動作を満たす関数コードを記述します。 3) go test コマンドを実行して、関数が期待どおりかどうかを確認します。 4) 必要に応じてステップ 1 ~ 3 を繰り返し、すべてのテストが合格するまで関数の実装を改善し、テスト ケースを改善します。

golang 関数のテスト駆動開発プロセスを実装するにはどうすればよいですか?

Golang 関数 TDD (テスト駆動開発) プロセス

テスト駆動開発 (TDD) は、ソフトウェア開発プロセスです。開発者はまずテストを作成し、次にそれらのテストを満たすために必要なコードを作成します。 Go 言語関数の場合、TDD プロセスは関数の正確性を保証し、その動作に関するドキュメントを提供するのに役立ちます。

#手順

    ##テストを作成します。
  1. go test コマンドを使用してテスト ファイルを作成し、関数と対応するテスト ケース。
    package main
    
    import (
        "testing"
    )
    
    func TestAdd(t *testing.T) {
        tests := []struct {
            a, b int
            want int
        }{
            {1, 2, 3},
            {3, 4, 7},
        }
        for _, tc := range tests {
            got := Add(tc.a, tc.b)
            if got != tc.want {
                t.Errorf("Add(%d, %d) = %d, want %d", tc.a, tc.b, got, tc.want)
            }
        }
    }
    コードの作成:
  1. テスト ケースで指定された動作を実装する関数を作成します。
    package main
    
    import "fmt"
    
    func Add(a, b int) int {
        return a + b
    }
    
    func main() {
        fmt.Println(Add(1, 2)) // 输出:3
    }
    テストを実行します。
  1. go test コマンドを実行して、関数が期待どおりであることを確認します。
    $ go test
    ok      test.go   0.000s
    繰り返し:
  1. 必要に応じて、すべてのテストが成功するまで上記の手順を繰り返し、さらにテスト ケースを作成し、関数の実装を改善します。
実際的なケース

Golang 関数

isPrime

を実装して、数値が素数かどうかを判断するとします。 TDD プロセスは次のように実行できます。

  1. テストの作成:

    package main
    
    import (
     "testing"
    )
    
    func TestIsPrime(t *testing.T) {
     tests := []struct {
         n     int
         prime bool
     }{
         {1, false},
         {2, true},
         {3, true},
         {4, false},
         {19, true},
         {100, false},
     }
     for _, tc := range tests {
         got := IsPrime(tc.n)
         if got != tc.prime {
             t.Errorf("IsPrime(%d) = %t, want %t", tc.n, got, tc.prime)
         }
     }
    }

  2. コードの作成:

    package main
    
    import "math"
    
    func IsPrime(n int) bool {
     if n <= 1 {
         return false
     }
     for i := 2; i <= int(math.Sqrt(float64(n))); i++ {
         if n%i == 0 {
             return false
         }
     }
     return true
    }
    
    func main() {
     fmt.Println(IsPrime(19)) // 输出:true
    }

  3. テストを実行します:

    $ go test
    ok      test.go   0.000s

以上がgolang 関数のテスト駆動開発プロセスを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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