Go語言基礎知識點分享

2021-10-05 08:51:13 字數 1618 閱讀 5575

最近在加深對go語言基礎知識學習,鞏固下基礎,同時分享給朋友們

go中單元測試

go 中給我們提供乙個包:testing,go 為我們提供一些很好的功能,我們可以在不需要太多學習的情況下使用它們。

若要在 go 中開始使用測試,首先需要定義要測試的包。如果還沒有,請建立乙個名為 testing101 的包,並建立檔案 sum.go,新增上下面的**:

package testing101

func sum(numbers int) int

return sum

}

接下來在同乙個包中,建立乙個名為 sum_test.go 的檔案,並將下面的**新增到其中。

package testing101

import (

"fmt"

"testing"

)func testsum(t *testing.t)

expected := 15

actual := sum(numbers)

if actual != expected

}

現在我們要執行我們的測試,所以在終端中切換到 testing101 包所在目錄,並使用下面的命令執行測試。

go test -v
你應該看到像這樣的輸出:

=== run testsum

— pass: testsum (0.00s)

pass

ok calhoun.io/testing101 0.005s

恭喜!您剛剛使用 go 內建的 testing 編寫了第乙個測試。現在,讓我們深入了解實際發生的事情。

首先,是我們的檔名。go 要求所有的測試都在以 _test.go 結尾的檔案中。這使得我們在檢查另乙個 package 包的源**時,確定哪些檔案是測試和哪些檔案實現功能非常容易。

在看了檔名之後,我們可以直接跳轉到**中,將測試包匯入。它為我們提供了一些型別 (如testing.t) ,這些型別提供常見功能,比如在測試失敗時設定錯誤訊息。

接下來,是函式 testsum()。所有的測試都應該以func test***(*testing.t)的格式來編寫。其中 *** 可以是任何字元或數字,而第乙個字元需要是大寫字元或數字。(譯註:一般,*** 就是被測試的函式名)

最後,如上所述,我們使用了testsum函式中的引數*tesing.t。如果我們沒有得到預期的結果,我們使用它來設定乙個錯誤,當我們執行測試時,該錯誤將顯示在終端上。若要檢視此操作,請將測試**中的 expected 更新為 18,而不更新 numbers 變數,然後使用 go test -v 執行測試。您應該會看到顯示如下所示錯誤資訊的輸出:

=== run testsum

— fail: testsum (0.00s)

sum_test.go:14: expected the sum of [1 2 3 4 5] to be 18 but instead got 15!

fail

exit status 1

fail calhoun.io/testing101 0.005s

go 語言 基礎知識點三

sql.open 函式用來開啟乙個註冊過的資料庫驅動,go mysql driver中註冊了mysql這 個資料庫驅動,第二個引數是dns data source name 它是go mysql driver定義的 一些資料庫鏈結和配置資訊。它支援如下格式 res,err stmt.exec zha...

基礎知識點

1 inline block布局 2 table布局 3 justify的末行不對齊 4 兩個圖示之間有空格 換行 5 背景中的的 路徑的 全部斜槓都為 不是 命令列下的這種 doctype html html head meta charset utf 8 title xx title head ...

GO基礎知識分享2

目錄兵長 胖sir,咋還在看基礎知識嘞?你以前可不是這樣的哦 胖sir 切,我今天看的和之前的可不一樣 兵長 有啥不一樣的,你能給我說出花來嘛 胖sir 小樣,你自己好好看看 兵長 看看就看看 交換2個數字的值 i 10 j 20 i j j,i t 3 5i fmt.println t 3 5i ...