草庐IT

testing - 是否可以使用 Gomega 模拟示例测试?

我有一些go测试,我想更新它们以使用Ginkgo进行BDD样式测试。问题是,服务器使用stdout和stderr进行日志记录,并且许多测试使用Go内置的“示例”测试框架,如下所示:import("fmt")funcExampleConsoleLog(){fmt.Printf("Testing%d,%d,%d:%s\n",1,2,3,"mikecheck")//Output://Testing1,2,3:mikecheck}我想使用Ginkgo和Gomega来断言这些被打印到标准输出,但没有内置的匹配器可以告诉我这样做。Gomega确实提供了一个gbytes包,但是没有关于如何将gbyt

testing - 使用 ginkgo/gomega 测试 Go 应用程序时测试文件的正确结构

我的Go应用程序(restfullapi服务)正在增长,我决定使用测试。我的选择是Ginkgo/Gomega。学习网站(http://onsi.github.io/ginkgo/#getting-started-writing-your-first-test)我发现开始测试你需要转到包裹银杏Bootstrap这将在包文件夹的根目录中创建文件[your_package]_suite_test。没关系。但是如果我想再次测试我需要的某些功能或文件或包转到文件夹和ginkgo生成[test_name],它将在此处创建stub测试文件。所以,一会儿我们就会有很多乱七八糟的东西:我们的应用程序文件

unit-testing - 在辅助函数中包装 httptest 方法

在我的处理程序测试中,我多次使用header中带有身份验证token的测试请求服务模式。为了对此进行抽象,并为自己节省大量行数,我编写了以下函数:funcserveTestReq(payloadstring,routestring,methodstring,handlerfuncfunc(whttp.ResponseWriter,r*http.Request),tokenstring){body:=strings.NewReader(payload)req,err:=http.NewRequest(method,route,body)Expect(err).NotTo(HaveOccu

go - 银杏清理失败

我正在用Ginkgo编写测试规范。我的测试具有以下结构:It("SetupX,Y,Zresourcesandcheckconditions"func(){//setupresources.//assertcertainconditionsusing//cleanupresources})我的问题是,断言失败时如何执行清理。如果我为此目的使用afterEachblock,那么它会对所有测试规范执行相同的清理,这会显示一堆清理失败消息。推荐的银杏清除失败方法是什么。 最佳答案 您可以将此测试保存在单独的上下文中。然后afterEach将

unit-testing - Gomega 的 Equal() 可以处理多个值吗?

我正在测试使用gomega向服务器发送模拟请求的功能,我想验证1.请求已开始2.请求已完成。为此,我返回两个bool值。在下面的示例中,它们都应评估为真,但值可能会发生变化。我试过这个:g:=gomega.NewGomegaWithT(t)...g.Eventually(func()(bool,bool){...start=falseend=trueif(request.status=="started"){start=true}if(request.status=="complete"){end=true}returnstart,end}).Should(Equal((true,tr

go - 如何使用gopkg安装ginkgo和gomega?

我正在尝试安装ginkgo和gomega使用gopkg.它抛出以下错误:src/gopkg.in/onsi/ginkgo.v1/ginkgo_dsl.go:24:2:useofinternalpackagenotallowedsrc/gopkg.in/onsi/ginkgo.v1/ginkgo_dsl.go:25:2:useofinternalpackagenotallowedsrc/gopkg.in/onsi/ginkgo.v1/ginkgo_dsl.go:26:2:useofinternalpackagenotallowedsrc/gopkg.in/onsi/ginkgo.v1/g