<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # 自動化測試框架 * testing包提供了自動化測試相關的框架 * 支持單元測試和壓力測試 **go test介紹** * `go test`加包名,執行這個包下面的所有測試用例 * `go test`加測試源文件,執行這個測試源文件里的所有測試用例 * `go test -run`選項,執行指定的測試用例 # 測試規范 * 用來測試的代碼必須以`_test.go`結尾 * 單元測試的函數名必須以Test開頭,并且只有一個參數,類型是`*Testing.T` * 基準測試或壓力測試必須以Beanchmark開頭,并且只有參數,類型是`*Testing.B ` # 單元測試 Go 的測試方法看上去相對比較低級,它依賴于命令`go test`和一些能用`go test`運行的測試函數的編寫約定。但是,我認為這就是所謂的 Go 風格,用 Go 以來,我的感受是 Go 語言就是保持了 C 語言編程習慣的一門語言。 首先,為了開始這篇文章,我寫寫一個簡單的函數用作后面要測試的例子,但是,考慮到后面可能要講一些稍微復雜一點的內容,所以,這個例子我留有一些可以改變的地方,大家可以選擇著看 ~~~ func Add(x, y int) int { return x + y } func main() { fmt.Println(Add(1, 2)) } ~~~ 這個例子就是這么簡單,將這個文件命名為**main.go**,然后我們就應該編寫測試代碼了。測試代碼的文件放置的位置可以隨意,`package`也可以隨意寫,但是,**文件名必須以 \_test 結尾**,所以,我這里就命名為**main\_test.go**。 這里編寫測試函數,有幾個需要注意的點: 1. 每個測試文件必須以**\_test.go**結尾,不然`go test`不能發現測試文件 2. 每個測試文件必須導入**testing**包 3. 功能測試函數必須以**Test**開頭,然后一般接測試函數的名字,這個不強求,**Test后面的也要首字母大寫** 根據這些條件,我們可以寫出一個測試文件 ~~~ func TestAdd(t *testing.T) { sum := Add(1, 3) t.Logf("打印日志: %s", "logf日志") fmt.Println(sum) if sum != 3 { t.Error("測試失敗") t.Fatalf("打印Fatalf日志: %s", "Fatalf日志") } } ~~~ 測試文件寫完之后,我們就應該執行測試了,打開命令行工具,敲入這條命令:`go test main_test.go main.go -v -cover` 然后就應該等待測試結果了,這里加了兩個參數,分別是`-v`和`-cover`,如果不加上的話你會發現只有**Test Pass**的簡單提示,而看不到我們加了參數的具體提示: # 壓力測試 ~~~ func BenchmarkAdd(b *testing.B) { for i := 0; i < b.N; i++ { a := 10 b := 20 Add(a, b) } } ~~~ ~~~ go test -bench . ~~~ 輸出 ~~~ goos: darwin goarch: amd64 pkg: clientTcp BenchmarkAdd-8 2000000000 0.35 ns/op PASS ~~~ 那么多次,表示每次調用才花了0.35納秒
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看