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

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

在單元測(cè)試中使用隨機(jī)數(shù)與硬編碼值

在單元測(cè)試中使用隨機(jī)數(shù)與硬編碼值

Go
烙印99 2023-06-26 17:43:45
當(dāng)我編寫測(cè)試時(shí),我喜歡使用隨機(jī)數(shù)來計(jì)算。例如 func init() {   rand.Seed(time.Now().UnixNano()) }  func TestXYZ(t *testing.T) {     amount := rand.Intn(100)     cnt := 1 + rand.Intn(10)     for i := 0; i < cnt; i++ {       doSmth(amount)     }     //more stuff  }這當(dāng)然有一個(gè)缺點(diǎn)expected := calcExpected(amount, cnt)因?yàn)闇y(cè)試的預(yù)期值需要根據(jù)隨機(jī)值計(jì)算。如果這種方法受到批評(píng):它使測(cè)試變得不必要的復(fù)雜由于隨機(jī)性,可重復(fù)性較差我認(rèn)為雖然沒有隨機(jī)性,我實(shí)際上可以:彌補(bǔ)我的結(jié)果,例如測(cè)試僅適用于特定值。隨機(jī)性證明我的測(cè)試是“穩(wěn)健的”捕獲更多邊緣情況(有爭(zhēng)議,因?yàn)檫吘壡闆r通常是特定的,例如 0,1,-1)使用隨機(jī)數(shù)真的那么糟糕嗎?(我意識(shí)到這是一個(gè)意見問題,但我對(duì)人們的觀點(diǎn)非常感興趣,不介意投反對(duì)票)。
查看完整描述

1 回答

?
精慕HU

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

您的問題不是特定于 Go 的。這適用于任何語言和任何類型的單元測(cè)試。

測(cè)試的預(yù)期值需要根據(jù)隨機(jī)值計(jì)算。

這是主要問題。如果您的應(yīng)用程序邏輯稍微復(fù)雜,那么當(dāng)應(yīng)用程序中的邏輯發(fā)生變化時(shí),您也必須在測(cè)試中更改相同的邏輯。您必須實(shí)施這些更改兩次。

想必每一個(gè)都同樣復(fù)雜,并且每一個(gè)的實(shí)現(xiàn)都有些不同,因?yàn)槿绻皇窃跍y(cè)試中復(fù)制粘貼或重用應(yīng)用程序中的代碼來計(jì)算預(yù)期值,那么他們就會(huì)同意并且測(cè)試毫無意義。

在單元測(cè)試中使用固定值進(jìn)行測(cè)試可以使測(cè)試變得簡(jiǎn)單并練習(xí)代碼。

使用隨機(jī)值進(jìn)行測(cè)試,稱為模糊測(cè)試。我不是測(cè)試模糊方面的專家。使用隨機(jī)值進(jìn)行測(cè)試是模糊測(cè)試的一方面,但細(xì)微差別在于測(cè)試隨機(jī)值,這些隨機(jī)值可能會(huì)發(fā)現(xiàn)邊緣情況、捕獲錯(cuò)誤、執(zhí)行未使用的代碼分支或發(fā)現(xiàn)泄漏。


查看完整回答
反對(duì) 回復(fù) 2023-06-26
  • 1 回答
  • 0 關(guān)注
  • 180 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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