gpt4 book ai didi

testing - go中函数的正确测试方法

转载 作者:IT王子 更新时间:2023-10-29 00:56:56 25 4
gpt4 key购买 nike

我刚开始接触测试。我的方法返回一个带有 md5 散列的 []byte。

func myHash(s string) []byte {
h := md5.New()
io.WriteString(h, s)
return h.Sum(nil)
}

它工作正常,哈希值看起来不错,但是当我用这种方法测试它时:

func TestMyHash(t *testing.T) {
s := "linux"
bf := ("e206a54e97690cce50cc872dd70ee896")
x := hashor(s)
if !bytes.Equal(x, []byte(bf)) {
t.Errorf("myHash ...")
}
}

它总是会失败。首先,我认为将字符串转换为 []byte 或将字符串转换为 []byte 可能存在一些问题,但在一遍又一遍地尝试之后,我只需要在这里问一下。

你能给我一个如何测试我的功能的例子吗?我是否遗漏了一些必要的东西?

提前致谢。

最佳答案

您可能正在将哈希的原始字节与哈希的十六进制格式版本进行比较。你可能想做这样的事情:

got := fmt.Sprintf("%034x", myHash("linux"))
want := "00e206a54e97690cce50cc872dd70ee896"
if got != want {
t.Errorf("got %q, want %q", got, want)
}

关于testing - go中函数的正确测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18275191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com