Hello,YOU--通过简单的hello_test.go程序理解并学会编写测试

博客 分享
0 168
张三
张三 2023-03-16 10:27:13
悬赏:0 积分 收藏

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
}

现在再运行测试应该就通过了。

 

posted @ 2023-03-16 10:22  slowlydance2me  阅读(0)  评论(0编辑  收藏  举报
回帖
    张三

    张三 (王者 段位)

    921 积分 (2)粉丝 (41)源码

     

    温馨提示

    亦奇源码

    最新会员