作为一个半业余程序员(工作不稳定,啥都需要做一点),经常需要对接各种奇奇怪怪的项目,文档不全十有八九,所以各种编程语言的调试运行都要懂一点。下面就讲讲常见的编程语言的调试方法。
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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。