草庐IT

pixel_unit

全部标签

unit-testing - 使用 Gorilla MUX 对 App Engine 进行单元测试

我想为GoogleAppEngine中的处理程序编写测试,这些处理程序使用Gorillamux从请求URL读取变量。我从documentation了解到您可以创建一个虚假的上下文并请求用于测试。我在测试中直接调用处理程序,但处理程序没有按预期看到路径参数。funcTestRouter(t*testing.T){inst,_:=aetest.NewInstance(nil)//ignoringerrorforbrevitydeferinst.Close()//triedaddingthislinebecausethetestwouldnotworkwithorwithoutithttpt

unit-testing - 在 GoLang 的 sqlmock 中出错

我正在为GoLang应用程序编写测试用例,我正在使用sqlmock模拟SQL查询,但在执行gotest时出现以下错误Params:[调用查询,不是预期的,下一个预期是:ExpectedBegin=>expectingdatabasetransactionBegin]对此有什么想法吗? 最佳答案 sqlmock期望有一个开始,但却得到了其他东西。在此处显示功能并进行测试以获取更多信息。 关于unit-testing-在GoLang的sqlmock中出错,我们在StackOverflow上找

unit-testing - 在 go api 调用中测试

我想为我的api编写测试用例,例如:数据库查询失败、代码错误、响应错误等。所以我在Controller文件夹中创建了一个名为controller_test.go的文件。这是我的代码:packagecontrollersimport("net/http""testing""net/http/httptest")func(imcImessageSoundController)TestHealthCheckHandler(t*testing.T){req,err:=http.NewRequest("GET","sound/imessage_sound",nil)iferr!=nil{t.Fa

unit-testing - 如何在向 API 发送 http 请求时进行模拟

我已经使用go-gin在Go中实现了一个ReSTAPI,我正在尝试测试一个如下所示的处理函数funceditNameHandler(c*gin.Context){//makeaReSTcalltoanotherservercallToAnotherServer()c.Status(200)}我想模拟callToAnotherServer方法,以便我的测试用例根本不调用第3方服务器。我的测试用例看起来像funcTestSeriveIdStatusRestorePatch(t*testing.T){//Requestbodysend:=strings.NewReader(`{"name":

unit-testing - 我如何对文本将出现在屏幕中央进行单元测试?

这是一个小脚本。packagebashutilimport("fmt""github.com/nsf/termbox-go")funcCenter(sstring){iferr:=termbox.Init();err!=nil{panic(err)}w,_:=termbox.Size()termbox.Close()fmt.Printf(fmt.Sprintf("%%-%ds",w/2),fmt.Sprintf(fmt.Sprintf("%%%ds",w/2+len(s)/2),s),)}我可以对其进行单元测试吗?我怎样才能测试它?我认为测试一个片段这么少是胡说八道。但是,...如果我

unit-testing - 如何在 Golang 中正确模拟具有成员函数的结构?

我有两个结构:FunctionalityClient和TestClient,它们都实现了Interface。我有一个Interface类型的全局变量Client。我将实际客户端或模拟客户端分配给Client,具体取决于它是测试还是正常运行。Interface有一个方法Request我想在测试中模拟它。也就是说,我想:记录传递给函数的参数是什么从函数返回一些任意定义的返回值所以结构看起来像这样:typeTestClientstruct{recordedArgs[]interface{}returnValues[]interface{}}func(c*TestClient)Request(

unit-testing - 在 go 中正确测试 http 路由

我有5个端点,它们具有GET、POST和DELETE等方法来测试。我使用go的内置测试包编写了测试用例。我担心我遗漏了一些我不感兴趣的案例。我已经在代码审查中发布了我的测试用例进行审查,但我没有得到任何回应。我也关注了这个帖子TestingHTTProutesingolang.所有这些测试用例都在检查响应代码。问题是,我的大部分测试用例都遵循类似的模式,我以不同的格式发布数据并检查响应代码。我强烈觉得我错过了一些东西,当我将它推向产品时会破坏我的API。我需要对测试这些路由有一些了解,这样我才能有信心将API推向产品。main_test.gofuncTestSigHandler(t*t

unit-testing - 戈朗 : tests and working directory

我正在用Go为我的应用程序编写一些单元测试。但是测试失败了,因为它找不到配置文件。通常,二进制文件会在路径conf/*.conf下的工作目录中查找配置文件。我想浏览到有conf/的目录,在里面运行gotest就可以解决,但是还是报文件系统找不到路径指定。如何告诉gotest使用某个目录作为工作目录,以便测试可以实际执行? 最佳答案 您可以使用Caller获取当前测试源文件的路径,如下所示:packagesampleimport("testing""runtime""fmt")funcTestGetFilename(t*testing

unit-testing - 为从中读取的函数填充 os.Stdin

如何在我的测试中填充os.Stdin以获取使用扫描仪从中读取的函数?我使用以下函数通过扫描器请求用户命令行输入:funcuserInput()error{scanner:=bufio.NewScanner(os.Stdin)println("Whatisyourname?")scanner.Scan()username=scanner.Text()/*...*/}现在如何测试这种情况并模拟用户输入?以下示例不起作用。标准输入仍然是空的。funcTestUserInput(t*testing.T){varfile*os.Filefile.Write([]byte("Tom"))os.St

unit-testing - 无法在 golang : "unable to open database file [recovered]"-error 中打开 SQLite 数据库

我刚开始学习golang,不确定我的错误是概念上的还是语言上的。这很奇怪,因为只有在对我的代码进行单元测试时才会出现错误。如果我“去运行”一切正常。作为sqlite驱动程序,我使用mattn/go-sqlite3.这里是问题发生的地方:funcdbExec(command*string){db,err:=sql.Open("sqlite3",dbPath)//Pathanddriveraresetcorrecrtlydeferdb.Close()iferr!=nil{//Noproblemherepanic(err)}_,err=db.Exec(*command)iferr!=nil{