小编aad*_*yaa的帖子

Golang 中的“testing.T”是什么意思?

当我在词法分析器的测试单元中遇到这一行时,我目前正在用Go 编写解释器:

package lexer 

import ( 

"testing"

"monkey/token"

)

func TestNextToken(t *testing.T) {
}
Run Code Online (Sandbox Code Playgroud)

“t *testing.T”的目的是什么?我知道它是指向测试库中某个字段的指针,但我不确定它在做什么。

稍后在代码中它是这样使用的:

for i, tt := range tests { 
     tok := l.NextToken()

     if tok.Type != tt.expectedType { 
          t.Fatalf("tests[%d] - tokentype wrong. expected=%q, got=%q", i, tt.expectedType, tok.Type) 
     }

     if tok.Literal != tt.expectedLiteral { 
           t.Fatalf("tests[%d] - literal wrong. expected=%q, got=%q", i, tt.expectedLiteral, tok.Literal) 
     }
}

Run Code Online (Sandbox Code Playgroud)

我通读了Golang 测试文档,但无法真正理解它的目的是什么或者为什么它被传递给测试函数。它只提到它是“传递给测试函数以管理测试状态并支持格式化测试日志的类型”,尽管我不确定如何在上述代码的上下文中解释它。

testing interpreter go

4
推荐指数
1
解决办法
4222
查看次数

标签 统计

go ×1

interpreter ×1

testing ×1