第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

單元測(cè)試 - 記錄然后失?。?/h1>

單元測(cè)試 - 記錄然后失?。?/h1>
Go
慕運(yùn)維8079593 2021-06-23 17:58:36
我習(xí)慣于測(cè)試驅(qū)動(dòng)我的代碼?,F(xiàn)在我是 Go 的新手,我正在努力盡快把它做好。我正在使用標(biāo)準(zhǔn)庫(kù)中的測(cè)試包,這似乎已經(jīng)足夠好了。(我也喜歡它不是另一個(gè)外部依賴項(xiàng)。我們目前總體上有 2 個(gè)依賴項(xiàng) - 與任何 Java 或 Ruby 項(xiàng)目相比......)無(wú)論如何 - 它看起來(lái)像 golang 中的斷言如下所示:func TestSomething(t *testing.T) {  something := false  if something {    t.Log("Oh noes - something is false")    t.Fail()        }}我覺(jué)得這很冗長(zhǎng),并希望在一行上完成:Assert( something, "Oh noes - something is false" )或類似的東西。我希望我在這里錯(cuò)過(guò)了一些明顯的東西。在 go 中執(zhí)行此操作的最佳/慣用方法是什么?更新:只是為了澄清。如果我要做這樣的事情:func AssertTrue(t *testing.T, value bool, message string) {  if value {    t.Log(message)    t.Fail()  }}然后像這樣寫(xiě)我的測(cè)試func TestSomething(t *testing.T) {  something := false  AssertTrue(t, something, "Oh noes - something is false")}那么它會(huì)不會(huì)是去的方式來(lái)做到這一點(diǎn)?
查看完整描述

3 回答

?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

有可以與股票測(cè)試框架集成的外部包。


我很久以前寫(xiě)的其中一個(gè)gocheck旨在對(duì)這種用例進(jìn)行排序。


有了它,測(cè)試用例看起來(lái)像這樣,例如:


func (s *Suite) TestFoo(c *gocheck.C) {

    // If this succeeds the world is doomed.

    c.Assert("line 1\nline 2", gocheck.Equals, "line 3")

}

您會(huì)像往常一樣運(yùn)行它,使用go test,并且該檢查中的失敗將報(bào)告為:


----------------------------------------------------------------------

FAIL: foo_test.go:34: Suite.TestFoo


all_test.go:34:

    // If this succeeds the world is doomed.

    c.Assert("line 1\nline 2", gocheck.Equals, "line 3")

... obtained string = "" +

...     "line 1\n" +

...     "line 2"

... expected string = "line 3"

請(qǐng)注意代碼正上方的注釋是如何包含在報(bào)告的失敗中的。


還有許多其他常用功能,例如套件和特定于測(cè)試的設(shè)置和拆除例程,等等。請(qǐng)查看網(wǎng)頁(yè)了解更多詳情。


它維護(hù)得很好,因?yàn)槲液推渌嗽谠S多活躍的項(xiàng)目中使用它,所以請(qǐng)隨時(shí)加入,或跟進(jìn)并查看更適合您口味的其他類似項(xiàng)目。


對(duì)于gocheck使用的例子,請(qǐng)看看包裝,如氧化鎂,goyaml,goamz,管,VCLOCK,朱朱(大規(guī)模的代碼庫(kù)),LPAD,gozk,goetveld,墓等。此外gocheck,管理,測(cè)試本身。引導(dǎo)它很有趣。


查看完整回答
反對(duì) 回復(fù) 2021-06-28
?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

我不鼓勵(lì)以您似乎想要的方式編寫(xiě)測(cè)試。整個(gè) stdlib 使用您所說(shuō)的“詳細(xì)”方式并非偶然。

不可否認(rèn),這更多的線路,但這種方法有幾個(gè)優(yōu)點(diǎn)。

如果你閱讀了為什么 Go 沒(méi)有斷言?并且s/error handling/test failure reporting/g你可以得到的為什么轉(zhuǎn)到測(cè)試幾個(gè)“斷言”包不是一個(gè)好主意,用圖片,

再一次,證明是 stdlib 的龐大代碼庫(kù)。


查看完整回答
反對(duì) 回復(fù) 2021-06-28
  • 3 回答
  • 0 關(guān)注
  • 218 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)