goconvey是一个支持golang的单元测试框架
goconvey能够自动监控文件修改并启动测试,并可以将测试结果实时输出到web界面
goconvey提供了丰富的断言简化测试用例的编写
前面两个小节我们分别学习了 Go 语言中的变量声明和赋值。按照一贯的思维,变量肯定是要先声明然后才能被赋值并使用。但是在 Go 语言中新增了一个特殊的运算符 := ,这个运算符可以使变量在不被声明的情况下直接使用,这节课我们就来具体看下这个特殊的运算符: 1. 单变量 := Go 语言中新增了一个特殊的运算符:=,这个运算符可以使变量在不声明的情况下直接被赋值使用。其使用方法和带值声明变量类似,只
包(package)是多个 Go 源码的集合,是一种高级的代码复用方案,像 fmt、os、io 等这样具有常用功能的内置包在 Go语言中有 150 个以上,它们被称为标准库,大部分(一些底层的除外)内置于 Go 本身。 包要求在同一个目录下的所有文件的第一行添加如下代码,以标记该文件归属的包: package 包名 包的特性如下: 一个目录下的同级文件归属一个包。 包名可以与其目录不同名。 包名为
主要内容:使用命令行查看GOPATH信息,使用GOPATH的工程结构,设置和使用GOPATH,在多项目工程中使用GOPATHGOPATH 是 Go语言中使用的一个环境变量,它使用绝对路径提供项目的工作目录。 工作目录是一个工程开发的相对参考目录,好比当你要在公司编写一套服务器代码,你的工位所包含的桌面、计算机及椅子就是你的工作区。工作区的概念与工作目录的概念也是类似的。如果不使用工作目录的概念,在多人开发时,每个人有一套自己的目录结构,读取配置文件的位置不统一,输出的二进制运行文件也不统一,这样
Go语言中 continue 语句可以结束当前循环,开始下一次的循环迭代过程,仅限在 for 循环内使用,在 continue 语句后添加标签时,表示开始标签对应的循环,例如: 代码输出结果如下: 0 2 1 2 代码说明:第 14 行将结束当前循环,开启下一次的外层循环,而不是第 10 行的循环。
Go语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的。 下面来看下并发情况下读写 map 时会出现的问题,代码如下: 运行代码会报错,输出如下: fatal error: concurrent map read and map write 错误信息显示,并发的 map 读和 map 写,也就是说使用了两个并发函数不断地对 map 进行读和写而发生了竞态问题,map 内部会对
主要内容:语法简单,并发模型,内存分配,垃圾回收,静态链接,标准库,工具链Go语言也称为 Golang,是由 Google 公司开发的一种静态强类型、编译型、并发型、并具有垃圾回收功能的编程语言。 接下来从几个方面来具体介绍一下Go语言的特性。 语法简单 抛开语法样式不谈,单就类型和规则而言,Go 与 C99、C11 相似之处颇多,这也是Go语言被冠以“NextC”名号的重要原因。 Go语言的语法处于简单和复杂的两极。C语言简单到你每写下一行代码,都能在脑中想象出编译后
主要内容:使用 goto 退出多层循环,使用 goto 集中处理错误Go语言中 goto 语句通过标签进行代码间的无条件跳转,同时 goto 语句在快速跳出循环、避免重复退出上也有一定的帮助,使用 goto 语句能简化一些代码的实现过程。 使用 goto 退出多层循环 下面这段代码在满足条件时,需要连续退出两层循环,使用传统的编码方式如下: 代码说明如下: 第 10 行,构建外循环。 第 13 行,构建内循环。 第 16 行,当 y==2 时需要退出所有的 for
主要内容:基本写法,跨越 case 的 fallthrough——兼容C语言的 case 设计Go语言的 switch 要比C语言的更加通用,表达式不需要为常量,甚至不需要为整数,case 按照从上到下的顺序进行求值,直到找到匹配的项,如果 switch 没有表达式,则对 true 进行匹配,因此,可以将 if else-if else 改写成一个 switch。 相对于C语言和 Java 等其它语言来说,Go语言中的 switch 结构使用上更加灵活,语法设计尽量以使用方便为主。 基本写