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