首頁  >  文章  >  後端開發  >  如何管理需要 API 金鑰的測試

如何管理需要 API 金鑰的測試

WBOY
WBOY轉載
2024-02-09 23:06:09813瀏覽

如何管理需要 API 密钥的测试

php小編蘋果為您介紹如何管理需要 API 金鑰的測試。在開發過程中,許多應用程式需要使用 API 金鑰來存取第三方服務。然而,管理這些密鑰可能會變得複雜和冗長。為了簡化這個過程,我們可以採取一些有效的管理策略,例如使用環境變數、金鑰管理工具、金鑰輪替等。這些方法不僅可以提高安全性,還能方便開發人員進行測試和部署。在本文中,我們將詳細介紹這些策略,並提供一些建議來幫助您更好地管理需要 API 金鑰的測試。

問題內容

我有一些密封測試,這些測試運作得很好。 foo.go 中的程式碼在 foo_test.go 中進行測試。

但我也有一些需要 API 金鑰的測試,我希望將這些測試與密封測試分開,因為我們不在 CI 中運行它們。

如何以與 Go 工具和生態系統良好配合的方式有效地隔離這些測試?

解決方法

有多種方法可以跳過測試。他們中的大多數人都利用testing.t.skip(now)。以下是 skipnow 的一些常見用例。然而,由於這就像任何舊的函數呼叫一樣,您可以根據需要發揮創意。

使用環境變數

package main

import (
    "os"
    "testing"
)

func testalways(t *testing.t) {
}

func testsometimes(t *testing.t) {
    key := os.getenv("foo_api_key")
    if key == "" {
        t.skip("foo_api_key is empty")
    }
}

執行以下之一:

go test -v
foo_api_key=bar go test -v

使用內建的 short 標誌

package main

import (
    "testing"
)

func testalways(t *testing.t) {
    // ...
}

func testsometimes(t *testing.t) {
    if testing.short() {
        t.skip("-short is set")
    }

    // ...
}

執行以下之一:

go test -v -short
go test -v

使用自訂標誌

package main

import (
    "flag"
    "testing"
)

var withfoo = false // or true to run test by default

func init() {
    flag.boolvar(&withfoo, "with-foo", withfoo, "include foo tests")
}

func testalways(t *testing.t) {
    // ...
}

func testsometimes(t *testing.t) {
    if !withfoo {
        t.skip("-with-foo is not set")
    }

    // ...
}

執行以下之一:

go test -v
go test -v -with-foo

使用建構約束

#
// main_test.go
package main

import (
    "testing"
)

func testalways(t *testing.t) {
    // ...
}
// foo_test.go
//go:build foo
package main

import (
    "testing"
)

func testsometimes(t *testing.t) {
    // ...
}

執行以下之一:

go test -v
go test -v -tags=foo

請注意,使用建置標記,輸出不會表示測試已被跳過。除非建置標記包含在命令列(或 goflags 中),否則標記的 .go 檔案對編譯器來說是不可見的。

以上是如何管理需要 API 金鑰的測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除