第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將 go 模塊導(dǎo)入到 /*_test.go 文件中?

如何將 go 模塊導(dǎo)入到 /*_test.go 文件中?

Go
慕運(yùn)維8079593 2022-09-26 17:21:42
如何將我的函數(shù)導(dǎo)入到我的測(cè)試文件夾中?我在cmd目錄中運(yùn)行,它創(chuàng)建了一個(gè)go.mod文件,但是當(dāng)我嘗試在測(cè)試中導(dǎo)入它時(shí),我無(wú)法訪問(wèn)函數(shù)。我在根項(xiàng)目目錄中運(yùn)行,錯(cuò)誤是:go mod initmodule "cmd"go test ./testtest/services_test.go:4:2: "cmd" is not an importable package;myproject├── cmd     ├── main.go (package main)     ├── helper.go (package main)     └── services.go (package main)├── test     ├── helper_test.go (package_main)     └── services_test.go (package main)├── go.mod (module cmd)└── go.sum在 cmd/services.go 中package mainfunc doStuff() {   // TODO}在測(cè)試中/services_test.gopackage mainimport {    "cmd"    "testing"}func TestdoStuff (*testing.T) {    cmd.doStuff()}
查看完整描述

3 回答

?
天涯盡頭無(wú)女友

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊

給定包的測(cè)試應(yīng)位于該包中,以便它們可以看到該包的未導(dǎo)出變量、字段和方法,并且根本不需要導(dǎo)入該包。不要將它們放在單獨(dú)的目錄中。test

如有必要,您可以導(dǎo)入其他包來(lái)測(cè)試此包,但無(wú)法看到其他包中未導(dǎo)出的內(nèi)容。在這方面,測(cè)試與任何其他文件沒(méi)有什么不同。


查看完整回答
反對(duì) 回復(fù) 2022-09-26
?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊

正如其他答案中指出的那樣,測(cè)試文件必須與測(cè)試文件位于同一目錄中??梢圆榭唇坛?a >創(chuàng)建 Go 模塊,然后添加測(cè)試。

以下是這些教程中的示例:

myproject

├── greetings

     ├── greetings.go (package greetings)

     ├── greetings_test.go (package greetings)

├── go.mod

└── go.sum

問(wèn)候語(yǔ)文件:


package greetings


import "fmt"


// Hello returns a greeting for the named person.

func Hello(name string) string {

    // Return a greeting that embeds the name in a message.

    message := fmt.Sprintf("Hi, %v. Welcome!", name)

    return message

}

greetings_test.go 文件包含兩個(gè)測(cè)試:


package greetings


import (

    "testing"

    "regexp"

)


// TestHelloName calls greetings.Hello with a name, checking

// for a valid return value.

func TestHelloName(t *testing.T) {

    name := "Gladys"

    want := regexp.MustCompile(`\b`+name+`\b`)

    msg, err := Hello("Gladys")

    if !want.MatchString(msg) || err != nil {

        t.Fatalf(`Hello("Gladys") = %q, %v, want match for %#q, nil`, msg, err, want)

    }

}


// TestHelloEmpty calls greetings.Hello with an empty string,

// checking for an error.

func TestHelloEmpty(t *testing.T) {

    msg, err := Hello("")

    if msg != "" || err == nil {

        t.Fatalf(`Hello("") = %q, %v, want "", error`, msg, err)

    }

}


查看完整回答
反對(duì) 回復(fù) 2022-09-26
?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

的 已編譯項(xiàng)目是二進(jìn)制文件,該二進(jìn)制文件是包的下游用戶(hù)將與之交互的內(nèi)容。因此,驗(yàn)證 行為的測(cè)試應(yīng)該針對(duì)二進(jìn)制文件本身進(jìn)行測(cè)試,而不是針對(duì)用于實(shí)現(xiàn)該二進(jìn)制文件的單個(gè)函數(shù)進(jìn)行測(cè)試。package mainpackage main

可以通過(guò)以下方法編寫(xiě)此類(lèi)測(cè)試:使用要運(yùn)行的包(可能使用標(biāo)志將二進(jìn)制文件輸出到測(cè)試的臨時(shí)目錄),然后使用包執(zhí)行生成的二進(jìn)制文件。os/execgo build cmd-oos/exec

或者,使用第三方測(cè)試包(如 github.com/rogpeppe/testscript)編寫(xiě)更簡(jiǎn)潔的腳本驅(qū)動(dòng)測(cè)試。

或者,將任何幫助程序函數(shù)分解為內(nèi)部,并測(cè)試這些包的導(dǎo)出函數(shù)


使用上述任何一種方法,給定包的測(cè)試仍與該包屬于同一目錄。這樣,當(dāng)用戶(hù)運(yùn)行時(shí),他們可以確信它確實(shí)有效 - 如果測(cè)試位于不同的包中,他們顯然不會(huì)知道為了測(cè)試包而運(yùn)行。go test cmdcmdgo test testcmd


查看完整回答
反對(duì) 回復(fù) 2022-09-26
  • 3 回答
  • 0 關(guān)注
  • 115 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)