为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
杨魅力 2023-01-03 15:41:26
当我在词法分析器的测试单元中遇到这一行时,我目前正在阅读Writing an Interpreter in Go :package lexer import ( "testing""monkey/token")func TestNextToken(t *testing.T) {}“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)      }}我通读了Golang 测试文档,但无法真正理解它的目的是什么或为什么将其传递给测试功能。它只提到它是“传递给测试函数以管理测试状态和支持格式化测试日志的类型”,尽管我不确定如何在上述代码的上下文中解释它。
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

func TestNextToken(t *testing.T)表示该函数采用指向测试包中类型 T的指针。T 用于测试,F 用于模糊测试,B 用于基准测试,等等。该引用在变量中t

testing.T存储测试的状态。当 Go 调用您的测试函数时,它会将相同的内容传递testing.T给每个函数(大概)。你调用它的方法就像t.Fail说测试失败,或者t.Skip说测试被跳过等等。它会记住所有这些,Go 用它来报告所有测试函数中发生的事情。


查看完整回答
反对 回复 2023-01-03
  • 1 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号