(新手向)在Linux中使用VScode编写 "Hello,world"程序,并编写测试-Ubuntu20.4
2023-03-29 更新
经过一段时间的学习与实践,针对 Golang 语言基础的 TDD 驱动开发测试训练已经告一段落,接下来会在此基础上继续使用 TDD 来构建应用程序 。
博主前一部分的代码Github先贴下面👇以供参考
https://github.com/slowlydance2me/My_Golang_Study.git
本文意在帮助 Go 语言初学者在 Linux环境下编写自己的第一个Golang程序
难点主要在 VScode 中 Go 插件的下载 与 go.mod 以及编译运行和 第一个Go测试程序的使用
前提准备:安装Ubuntu20.4、安装Go并配置环境
1.下载并安装 VScode 编译器 (自行下载,不再赘述)
2.打开 VScode,按步骤安装中文插件以及对GO语言的支持
- 先去你自己想要的位置创建一个文件夹用来存储go文件
- 在 VScode 下打开该文件夹,在里面随便创建一个后缀命名为.go.的文件 (hello.go)
- 然后跟着提示安装就行
3.安装 GO 各种工具插件(坑点)
- 当弹出以下内容时,你可以 install VScode 提示你需要的工具插件
- 使用国内环境会提示安装失败(没办法,特殊原因)
- 解决办法很简单,在终端中输入以下内容即可
go env -w GO111MODULE=on go env -w GOPROXY=https://proxy.golang.com.cn,direct
- 重启 VScode,然后继续安装就没问题了
4.编写 Hello,World
package main import "fmt" func main() { fmt.Println("Hello, world") }
- 此时可以直接使用运行
go run hello.go
5.它是如何运行的
- 用 Go 编写程序,你需要定义一个
main
包,并在其中定义一个main
函数。包是一种将相关的 Go 代码组合到一起的方式。
func
关键字通过函数名和函数体来定义函数。
- 通过
import "fmt"
导入一个包含Println
函数的包,我们用它来打印输出。
6.如何测试
- 你打算如何测试这个程序?将你「领域」内的代码和外界(会引起副作用)分离开会更好。
fmt.Println
会产生副作用(打印到标准输出),我们发送的字符串在自己的领域内。
所以为了更容易测试,我们把这些问题拆分开。
package main import "fmt" func Hello() string { return "Hello, world" } func main() { fmt.Println(Hello()) }
- 我们再次使用
func
创建了一个新函数,但是这次我们在定义中添加了另一个关键字string
。这意味着这个函数将返回一个字符串。
现在创建一个
hello_test.go
的新文件,来为 Hello
函数编写测试package main import "testing" func TestHello(t *testing.T) { got := Hello() want := "Hello, world" if got != want { t.Errorf("got '%q' want '%q'", got, want) } }
编写测试和函数很类似,其中有一些规则
-
程序需要在一个名为
xxx_test.go
的文件中编写
-
测试函数的命名必须以单词
Test
开始
-
测试函数只接受一个参数
mod一下,再保存(必须要保存不然会出错)
go mod init {项目名}
- 在解释这个测试之前,让我们先在终端运行
go test
,它应该通过测试了!为了再次验证,可以尝试改变want
字符串来破坏测试的结果。
以上,完成!
hello my world
本文来自博客园,作者:slowlydance2me,转载请注明原文链接:https://www.cnblogs.com/slowlydance2me/p/17219622.html