當(dāng)我在詞法分析器的測(cè)試單元中遇到這一行時(shí),我目前正在閱讀Writing an Interpreter in Go :package lexer import ( "testing""monkey/token")func TestNextToken(t *testing.T) {}“t *testing.T”的目的是什么?我知道它是指向測(cè)試庫中某個(gè)字段的指針,但我不確定它在做什么。稍后在代碼中以這種方式使用: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 測(cè)試文檔,但無法真正理解它的目的是什么或?yàn)槭裁磳⑵鋫鬟f給測(cè)試功能。它只提到它是“傳遞給測(cè)試函數(shù)以管理測(cè)試狀態(tài)和支持格式化測(cè)試日志的類型”,盡管我不確定如何在上述代碼的上下文中解釋它。
1 回答

絕地?zé)o雙
TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
func TestNextToken(t *testing.T)
表示該函數(shù)采用指向測(cè)試包中類型 T的指針。T 用于測(cè)試,F(xiàn) 用于模糊測(cè)試,B 用于基準(zhǔn)測(cè)試,等等。該引用在變量中t
。
testing.T
存儲(chǔ)測(cè)試的狀態(tài)。當(dāng) Go 調(diào)用您的測(cè)試函數(shù)時(shí),它會(huì)將相同的內(nèi)容傳遞testing.T
給每個(gè)函數(shù)(大概)。你調(diào)用它的方法就像t.Fail
說測(cè)試失敗,或者t.Skip
說測(cè)試被跳過等等。它會(huì)記住所有這些,Go 用它來報(bào)告所有測(cè)試函數(shù)中發(fā)生的事情。
- 1 回答
- 0 關(guān)注
- 319 瀏覽
添加回答
舉報(bào)
0/150
提交
取消