Hello, YOU -- 通过简单的 hello_test.go 程序理解并学会编写测试
Hello, YOU
书接上文??上篇文章中,我们尝试编写了hello word 函数以及第一个测试 hello_test
package main import "fmt" func Hello() string { return "Hello, world" } func main() { fmt.Println(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) } }
现在有了测试,就可以安全地迭代我们的软件了。
在上一个示例中,我们在写好代码 之后 编写了测试,以便让你学会如何编写测试和声明函数。
从此刻起,我们将 首先编写测试。
我们的下一个需求是指定 hello 问候的接受者。
让我们从在测试中捕获这些需求开始。这是基本的测试驱动开发,可以确保我们的测试用例 真正 在测试我们想要的功能。
当你回顾编写的测试时,存在一个风险:即使代码没有按照预期工作,测试也可能继续通过。
package main import "testing" func TestHello(t *testing.T) { got := Hello("Chris") want := "Hello, Chris" if got != want { t.Errorf("got '%q' want '%q'", got, want) } }
这时运行 go test
,你应该会获得一个编译错误
当使用像 Go 这样的静态类型语言时,聆听编译器 是很重要的。
编译器理解你的代码应该如何拼接到一起工作,所以你就不必关心这些了。
在这种情况下,编译器告诉你需要怎么做才能继续。我们必须修改函数
Hello
来接受一个参数。修改
Hello
func Hello(name string) string { return "Hello, world" }
如果你尝试再次运行测试,main.go
会编译失败,因为你没有传递参数。传入参数「world」让它通过。
func main() { fmt.Println(Hello("world")) }
现在,当你运行测试时,你应该看到类似的内容
我们最终得到了一个可编译的程序,但是根据测试它并没有达到我们的要求。
为了使测试通过,我们使用
name
参数并用 Hello,
func Hello(name string) string { return "Hello, " + name }
现在再运行测试应该就通过了。
hello my world
本文来自博客园,作者:slowlydance2me,转载请注明原文链接:https://www.cnblogs.com/slowlydance2me/p/17221349.html