亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Ginkgo/Gomega 恐慌測試失敗

Ginkgo/Gomega 恐慌測試失敗

Go
12345678_0001 2022-12-19 21:22:32
我正在編寫一個測試來斷言函數在無效輸入時發生恐慌,但 Ginkgo 將恐慌記錄為失敗而不是預期的通過結果。func ParseUnixTimeString(unixTimeString string) time.Time {    i, err := strconv.ParseInt(unixTimeString, 10, 64)    if err != nil {        panic(fmt.Sprintf("could not parse time: %s", err.Error()))    }    return time.Unix(i, 0)}func TestFormat(t *testing.T) {    gomega.RegisterFailHandler(ginkgo.Fail)    ginkgo.RunSpecs(t, "Format Suite")}var _ = ginkgo.Describe("Format Tests", func() {    ginkgo.Describe("When formatting the date", func() {        ginkgo.It("should panic if the time can't be formatted", func() {            gomega.Expect(               tools.ParseUnixTimeString("2314321432143124223432434")).To(gomega.Panic())    })})哪個返回(濃縮):?! [PANICKED] [0.002 seconds][It] should panic if the time can't be formattedTest Panickedcould not parse time: strconv.ParseInt: parsing "2314321432143124223432434": value out of rangeRan 1 of 1 Specs in 0.002 secondsFAIL! -- 0 Passed | 1 Failed | 0 Pending | 0 Skipped如何正確測試 Ginkgo/Gomega 中的恐慌?
查看完整描述

1 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

從文檔中:


如果 ACTUAL 是一個在調用時發生恐慌的函數,則成功。ACTUAL 必須是一個不帶參數且不返回結果的函數——ACTUAL 的任何其他類型都是錯誤的。


請注意,ACTUAL(傳入的參數Expect)應該是一個函數。

在這種情況下,Gomega 將做的是調用該函數并捕獲恐慌,以便它可以對其進行斷言。


要修復您的特定示例:


var _ = ginkgo.Describe("Format Tests", func() {

    ginkgo.Describe("When formatting the date", func() {

        ginkgo.It("should panic if the time can't be formatted", func() {

            gomega.Expect(func(){

                tools.ParseUnixTimeString("2314321432143124223432434")

              }).To(gomega.Panic())

    })

})


查看完整回答
反對 回復 2022-12-19
  • 1 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號