草庐IT

test_node_xx

全部标签

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),)}我可以对其进行单元测试吗?我怎样才能测试它?我认为测试一个片段这么少是胡说八道。但是,...如果我

testing - golang 单元测试 : inner function parameters

我在go函数中的工作流程很简单,但是当进行单元测试时,我卡在了将参数传递给内部函数,或者模拟内部函数返回结果。代码:packagemyFuncimport(myPackagebookPackage)funcInit()(errerror){err=getResource(myPackage.GetPath())...}funcgetResource(pathstring)(errerror){//getresourcefrompath...err:=bookPackage.GetBook(path)}测试:packagemyFuncimport"testing"funcTestInit

node.js - 在 go 中运行 nodejs 应用程序

我有一个要求。有没有办法在golang中运行nodejs应用程序?我需要将nodejs应用程序包装在golang应用程序中,最后生成一个启动nodejs服务器然后能够调用nodejsrest端点的golang二进制文件。我需要使用nodem_modules将整个nodejs应用程序封装在golang二进制文件中,如果需要的话,nodejs运行时。 最佳答案 好吧,你可以制作一个Go程序,其中包括例如一个压缩的Node应用程序,它可以提取并启动,但很难做好-你将有巨大的二进制文件、提取文件的延迟、潜在的可移植性问题等。通常当你想调用R

testing - 如何在单元测试中测试函数的输出 (stdout/stderr)

我有一个简单的函数要测试:func(t*Thing)print(min_verbosityint,messagestring){ift.verbosity>=minv{fmt.Print(message)}}但是我怎样才能测试函数实际发送到标准输出的内容呢?Test::Output在Perl中做我想做的事。我知道我可以编写自己的所有样板文件以在Go中执行相同的操作(如here所述):orig=os.Stdoutr,w,_=os.Pipe()thing.print("Somemessage")varbufbytes.Bufferio.Copy(&buf,r)w.Close()os.Std

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

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

node.js - 基本客户端/服务器架构和交互

我正在尝试实现客户端和服务器并定义它​​们的交互。客户端使用Golang设计,服务器使用Node.js设计,它们使用gRPC进行交互。所以基本要点是:客户端联系服务器更新后端数据库客户端收到服务器的成功响应然后客户端自己更改数据库现在反射(reflect)的整个系统的状态但是假设发生了一些事情,使得进程在步骤2和3之间终止(客户端进程以某种方式终止)。确保我的后端数据库不反射(reflect)与现实不一致的系统状态的最佳方法是什么?我敢肯定这不是一个新问题,只是想知道人们通常如何处理此类设计。所以我已经考虑过重新设计这种交互,使服务器成为处理系统变化的实体——这样一切都在同一个请求中和

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{