1 回答

TA貢獻1865條經驗 獲得超7個贊
你真的不需要這樣做,因為你寫的函數只返回azblob.BlockBlobClient類型,編譯器甚至會在構建測試之前檢查它。如果不是這種情況,測試將無法運行。
我做了以下更改以顯示這一點:
//函數
package main
import (
"fmt"
"log"
"os"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
func getClient(blob, container string) interface{} {
storageAccount := os.Getenv("AZURE_STORAGE_ACCOUNT_NAME")
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatal("Invalid credentials with error:" + err.Error())
}
blobUrl := fmt.Sprintf("https://%s.blob.core.windows.net/%s/%s", storageAccount, container, blob)
fmt.Println(blobUrl)
client, err := azblob.NewBlockBlobClient(blobUrl, cred, nil)
if err != nil {
log.Fatal("Unable to create blob client")
}
return client
}
//測試
package main
import (
"os"
"testing"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
func TestgetClient(t *testing.T) {
blob := "text.txt"
container := "testcontainer"
os.Setenv("AZURE_STORAGE_ACCOUNT_NAME", "mystorageaccount")
client := getClient(blob, container)
_, ok := client.(azblob.BlockBlobClient)
if !ok {
t.Errorf("client should be type BlockBlobClient")
}
}
- 1 回答
- 0 關注
- 108 瀏覽
添加回答
舉報