关于后端:业余程序员调试开源项目之-Go

42次阅读

共计 611 个字符,预计需要花费 2 分钟才能阅读完成。

作为一个半业余程序员(工作不稳固,啥都须要做一点),常常须要对接各种奇奇怪怪的我的项目,文档不全十有八九,所以各种编程语言的调试运行都要懂一点。上面就讲讲常见的编程语言的调试办法。

go

个别 go 语言我的项目会应用自带的“testing”库进行测试,应用 t.Log(..) 函数就能够打印出数值。

t.Run("round trip secp", func(t *testing.T) {
    var buf bytes.Buffer
    var out crypto.Signature
    require.NoError(t, a.MarshalCBOR(&buf))
    t.Log(buf)
    require.NoError(t, out.UnmarshalCBOR(&buf))
    require.True(t, out.Equals(&a))
})

打印的时候如果类型有实现 String() 办法就会调用,如果没有则间接打印出构造体. 下面的例子就会间接打印出 bytes.Buffer 的构造体:

{[69 1 1 2 3 4] 0 0}

咱们须要的 binary 就是 [69 1 1 2 3 4] 这一段(256 进制)。

留神在执行 test 时要加上 -v 能力看到打印的字符。

go 的 package 是和文件目录构造挂钩的,所以如果想运行某个子文件里的某个测试,就须要先进到子文件的目录底下。再应用 -run TestName 来执行特定的测试。

go test -v -run TestSignatureSerializeRoundTrip

正文完
 0