草庐IT

power_unit

全部标签

unit-testing - 如何测试以文件夹为输入的 HTTP 函数?

我有一个HTTP处理函数(POST),它允许用户从Web浏览器应用程序上传文件夹。该文件夹作为文件夹中的文件数组从JavaScript代码传递,并在后端(GoAPI)上被接受为[]*multipart.FileHeader。我正在努力为此功能编写Go单元测试。如何将文件夹作为测试函数的输入传递?我需要帮助以正确的格式创建httpRequest。我已尝试为FileHeader数组使用/设置值,但不允许导入某些属性。因此,必须有一种我不知道的测试此处理程序的不同方法。文件夹上传的处理函数:funcFolderUpload(whttp.ResponseWriter,r*http.Reques

unit-testing - 戈朗 : how to generate a net/http timeout Error to perform unit test

我得到了一段如下代码:iftimeoutErr,ok:=err.(net.Error);ok&&timeoutErr.Timeout(){//Somecodethatneedtotest}我怎样才能生成可以匹配此处条件的错误,以便代码通过if。 最佳答案 Error是一个接口(interface):typeErrorinterface{errorTimeout()bool//Istheerroratimeout?Temporary()bool//Istheerrortemporary?}要实现它,您需要执行以下操作(未经测试):ty

unit-testing - 如何在go中测试数据库错误?

我在go中实现了一个由leveldb(https://github.com/syndtr/goleveldb)支持的存储器。我是新来的,我想弄清楚我如何获得下面代码中perr!=nil条件的测试覆盖率。我可以测试自己的错误,但我不知道如何可靠地让leveldb的Put方法返回错误。模拟一个数据库只是为了获得一些边缘案例的测试覆盖率,这似乎是一项没有多少返回的大量工作。mockleveldb是我唯一真正的选择吗?如果是的话,推荐的go模拟框架是什么?如果还有另一种方式,它是什么?iferr==leveldb.ErrNotFound{store.Lock()perr:=store.ldb.

unit-testing - 测试在 Golang 中加载 JSON 配置文件的方法

在Golang在测试项目中,有一种方法可以将JSON配置文件加载到变量中。它的代码是这样的://LoadtheJSONconfigfilefuncLoad(configFilestring,outputObjinterface{})*errors.ErrorSt{varerrerror//ReadtheconfigfilejsonBytes,err:=ioutil.ReadFile(configFile)iferr!=nil{fmt.Println(err.Error())returnerrors.File().AddDetails(err.Error())}//Parsethecon

unit-testing - 我如何对这个用 golang 编写的 promptui 包进行单元测试?

我是golang的新手,我在我的一个项目中使用了一个名为promptui(https://github.com/manifoldco/promptui)的交互式提示。我已经为这个项目编写了几个单元测试,但我正在努力解决如何对这个需要输入的特定包进行单元测试的问题。例如,我将如何着手测试以下代码行(封装在一个函数中):funcsetEmail()string{prompt:=promptui.Prompt{Label:"InputyourEmail",Validate:emailValidations,}email,err:=prompt.Run()iferr!=nil{color.re

unit-testing - 在 Go 中模拟接收函数

我正在尝试对调用该结构中其他接收函数的接收函数进行单元测试。假设我想在下面测试Three()并模拟对two()的调用:typeMyStructstruct{astringbstring}func(m*MyStruct)one()int{return2}func(m*MyStruct)two()int{returnm.one()*2}func(m*MyStruct)Three()int{returnm.two()*2}我遵循以下方法二answer.我为每个我想进行单元测试的函数创建了一个自定义构造函数,并用模拟版本覆盖了这些方法。但我认为一旦函数数量增加,维护代码可能并不容易。是否有任何

unit-testing - 如何在golang中为http请求编写单元测试?

我不知道如何测试下面代码中给出的http响应。funcgetVolDetails(volNamestring,objinterface{})error{addr:=os.Getenv("MAPI_ADDR")ifaddr==""{err:=errors.New("MAPI_ADDRenvironmentvariablenotset")fmt.Println(err)returnerr}url:=addr+"/path/to/somepage/"+volNameclient:=&http.Client{Timeout:timeout,}resp,err:=client.Get(url)i

unit-testing - Golang 单元测试 : error conditions

如何在Golang中测试错误条件和其他意外代码流?假设我有如下代码:importcryptofuncA(args)error{x,err:=crypto.B()iferr!=nil{returnerr}returnnil}B是一些函数。我相信我测试这种失败情况的唯一方法是更改​​B的值以进行测试(模拟它以便返回错误)。我尝试过的事情:1)monkeypatch在测试之前对函数进行修补,然后取消修补。这是一个可怕的想法。引起了各种奇怪的问题测试正在运行。2)将B作为参数传递给A。这一切都很好,但它也意味着我必须更改A的定义然后更新每次使用它每次执行更改时。此外,A可能正在使用许多导入的函

unit-testing - 正确使用 httptest 模拟响应

我有一些看起来像这样的东西:func(client*MyCustomClient)CheckURL(urlstring,json_response*MyCustomResponseStruct)bool{r,err=http.Get(url)iferr!=nil{returnfalse}deferr.Body.Close()....dostuffwithjson_response在我的测试中,我有以下内容:funcTestCheckURL(t*test.T){ts:=httptest.NewServer(http.HandlerFunc(func(whttp.ResponseWrite

unit-testing - Go 单元测试 fatal error 和测试 main()

我对使用PHPUnit测试的PHP背景进行测试还很陌生。在PHP中,您需要100%的覆盖率这一说法非常可靠。在Go中,我读到的关于测试的大部分内容似乎都很少,没有诸如引发错误之类的内容。比如我的小程序:funcmain(){config=readConfig("config.json")}funcreadConfig(pathstring)Config{varcfgConfigfile,err:=ioutil.ReadFile(path)iferr!=nil{log.Fatal(err)}err=json.Unmarshal(file,&cfg)iferr!=nil{log.Fatal