<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 簡介 Go 程序編寫三類測試,即:功能測試(test)、基準測試(benchmark,也稱性能測試),以及示例測試(example) 一般情況下,一個測試源碼文件只會針對于某個命令源碼文件,或庫源碼文件(以下簡稱被測源碼文件)做測試,所以我們總會(并且應該)把它們放在同一個代碼包內 測試源碼文件的主名稱應該以被測源碼文件的主名稱為前導,并且必須以“\_test”為后綴。例如,如果被測源碼文件的名稱為 demo52.go,那么針對它的測試源碼文件的名稱就應該是 demo52\_test.go 每個測試源碼文件都必須至少包含一個測試函數。并且,從語法上講,每個測試源碼文件中,都可以包含用來做任何一類測試的測試函數,即使把這三類測試函數都塞進去也沒有問題。我通常就是這么做的,只要把控好測試函數的分組和數量就可以了 # 對測試函數的名稱和簽名規定 這里我給出的典型回答是下面三個內容。 * 對于功能測試函數來說,其名稱必須以Test為前綴,并且參數列表中只應有一個\*testing.T類型的參數聲明。 * 對于性能測試函數來說,其名稱必須以Benchmark為前綴,并且唯一參數的類型必須是\*testing.B類型的。 * 對于示例測試函數來說,其名稱必須以Example為前綴,但對函數的參數列表沒有強制規定 # 基于表的測試方式 在 Go 語言中,有一種常用的測試套路,叫做**基于表的測試方式**,其核心就是我們需要針對不同的場景,其實也就是不同的輸入和輸出來驗證一個功能。例如我們要驗證的`Add`函數,我們需要驗證的功能點有很多,例如: * 兩個正數相加是否正確 * 兩個負數相加是否正確 * 一個正數加上一個負數是否正確 * 有一個數為 0 是否正確 那么,我們就可以使用**基于表的測試方式**了,代碼可以這樣寫 ~~~ func TestMultiAdd(t *testing.T) { var tests = []struct{ Arg1 int Arg2 int sum int } { {1, 1, 2}, {-1, -1, -2}, {1, -1, 0}, {0, 1, 1}, } for _, test := range tests { sum := Add(test.Arg1, test.Arg2) if sum != test.sum { t.Errorf("Add %v and %v result isn't %v", test.Arg1, test.Arg2, test.sum) } } } ~~~
                  <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>

                              哎呀哎呀视频在线观看