我是新手,开始玩测试.我的方法返回一个带有md5哈希的[]字节.
func myHash(s string) []byte {
h := md5.New()
io.WriteString(h, s)
return h.Sum(nil)
}
Run Code Online (Sandbox Code Playgroud)
它正常工作,哈希看起来还不错,但是当我用这种方法测试它时:
func TestMyHash(t *testing.T) {
s := "linux"
bf := ("e206a54e97690cce50cc872dd70ee896")
x := hashor(s)
if !bytes.Equal(x, []byte(bf)) {
t.Errorf("myHash ...")
}
}
Run Code Online (Sandbox Code Playgroud)
它总是会失败.首先我认为将字符串转换为[]字节可能会出现问题,反之亦然,但在反复尝试之后我只需要在这里问一下.
你能给我举个例子来测试我的功能吗?我想念一些必要的东西吗?
提前致谢.
您可能正在将哈希的原始字节与哈希的十六进制格式化版本进行比较.你可能想做这样的事情:
got := fmt.Sprintf("%034x", myHash("linux"))
want := "00e206a54e97690cce50cc872dd70ee896"
if got != want {
t.Errorf("got %q, want %q", got, want)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |