欧美日韩国产一区二区|qovd片|小明个人发布看看|小浪货你夹真紧水又多|老头把我添高潮了A片故|99热久久精品国产一区二区|久久久春色AV

fizzbuzz牛津英語樹 fizzbuzz( 七 )


一個(gè)場(chǎng)景告訴我們,fizzbuzz故事,即便是一個(gè)測(cè)試用例,從入口進(jìn)去,從出口出來,也不表示他測(cè)的是整個(gè)邏輯,是更多的關(guān)注了其中的一部分邏輯 。
這就好像繪本照相的時(shí)候一樣 。即便整個(gè)景色都被我照了下來,但是我的一張照片總有一個(gè)聚焦的焦點(diǎn),這個(gè)地方會(huì)特別的清楚 。測(cè)試也是一樣 。如下圖所示:

fizzbuzz牛津英語樹 fizzbuzz

文章插圖

fizzbuzz牛津英語樹 fizzbuzz

文章插圖
所以我們看待測(cè)試用例的時(shí)候不能一視同仁 。這種雖然是端到端的測(cè)試數(shù)據(jù),但實(shí)際上只關(guān)注部分邏輯的思路,在系統(tǒng)重構(gòu)的時(shí)候有更多的使用場(chǎng)景 。
一般等價(jià)類從這個(gè)場(chǎng)景下我們也可以發(fā)現(xiàn),如果僅寫一個(gè)輸入的值在測(cè)試用例的名字上,我們是不知道這個(gè)測(cè)試用例在測(cè)什么中文的 。
測(cè)試代碼也是代碼,也要追求可讀性 。
所以比起之前寫音標(biāo)3或者現(xiàn)在寫6,fizzbuzz是什么意思啊 。用一個(gè)更具有表義性的詞來稱呼會(huì)更好,比如像下面這樣:
這種更具有表義性的詞,我們稱之為一般等價(jià)類 。我們寫測(cè)試的時(shí)候會(huì)發(fā)現(xiàn),測(cè)試數(shù)據(jù)經(jīng)常是無窮無盡的,難道我無窮無盡的測(cè)下去嗎?肯定是不行的 。但是我還是希望能夠測(cè)的盡量全一點(diǎn) 。我測(cè)了哪些東西之后,就可以認(rèn)為我測(cè)的比較全了呢,如何來得到一個(gè)性價(jià)比較高的測(cè)試用例集合呢 。這時(shí)候我們要做一般等價(jià)類的分析,在我們這個(gè)題里面大概有下面幾個(gè)等價(jià)類:被3整除,被5整除,被7整除,包含3,包含5,包含7 。只要是一類的數(shù)據(jù),我們只需要一個(gè)數(shù)據(jù)就算是覆蓋了這一類的情況 。這一類就叫一般等價(jià)類,所以我們改完后的代碼應(yīng)該是下面這樣的:
fizzbuzz牛津英語樹 fizzbuzz

文章插圖
執(zhí)行了之后就能看到這個(gè):
fizzbuzz牛津英語樹 fizzbuzz

文章插圖
我們經(jīng)常講敏捷是工作的軟件勝過面面俱到的文檔 。這并不是說我們不寫文檔,而是說我們的文檔也是一種可以工作的軟件 。就像這個(gè)測(cè)試一樣,fizzbuzz音標(biāo) 。我們稱之為測(cè)試即文檔,也叫活的文檔 。代碼同樣,也叫代碼即文檔 。所以我們前面講測(cè)試也要追求可讀性 。實(shí)際上測(cè)試的可能性比實(shí)現(xiàn)代碼的可能性要求還要高一些 。不過通常來講也是有一些套路可循的 。
首先我們看名字,should開頭,表示輸出,given表示輸入,有時(shí)候也寫個(gè)when表示被測(cè)函數(shù) 。
fizzbuzz牛津英語樹 fizzbuzz

文章插圖
對(duì)應(yīng)的,我們的名字的結(jié)構(gòu)搬到我們的代碼上,三段式表達(dá),given部分還是輸入,when部分就是被測(cè)函數(shù),然后then部分寫各種assertion來校驗(yàn) 。
fizzbuzz牛津英語樹 fizzbuzz

文章插圖
然后就是粒度問題,通常一個(gè)測(cè)試只測(cè)一個(gè)case,這樣一旦報(bào)錯(cuò)了,我們就可以英語立刻知道是哪里的問題,從而減少尋錯(cuò)時(shí)間 。
迭代4你是一名翻譯體育老師,在某次課距離下課還有五分鐘時(shí),你決定搞一個(gè)游戲 。此時(shí)有200名學(xué)生在上課 。游戲的是什么規(guī)則是:
讓所有學(xué)生拍成一隊(duì),然后按順序報(bào)數(shù) 。學(xué)生報(bào)數(shù)時(shí),如果所報(bào)數(shù)字是3的倍數(shù),那么不能說該數(shù)字,而要說Fizz;如果所報(bào)數(shù)字是5的倍數(shù),那么要說Buzz;如果所報(bào)數(shù)字是第7的倍數(shù),那么要說Whizz 。學(xué)生報(bào)數(shù)時(shí),如果所報(bào)數(shù)字同時(shí)是兩個(gè)特殊數(shù)的倍數(shù)情況下,也要特殊處理,比如3和5的倍數(shù),那么不能說該數(shù)字,而是牛津要說FizzBuzz,以此類推 。如果同時(shí)是三個(gè)特殊數(shù)的倍數(shù),那么要說FizzBuzzWhizz 。學(xué)生報(bào)數(shù)時(shí),如果所報(bào)數(shù)字包含了3,那么也不能說該數(shù)字,而是要說相應(yīng)的單詞,比如要報(bào)13的同學(xué)應(yīng)該說Fizz 。如果數(shù)字中包含了3,那么忽略規(guī)則2和規(guī)則3,比如要報(bào)35的同學(xué)只報(bào)Fizz,不報(bào)BuzzWhizz 。如果數(shù)字中包含了5,那么忽略規(guī)則4和規(guī)則5,并且忽略被3整除的判定,比如要報(bào)35的同學(xué)不報(bào)Fizz,報(bào)BuzzWhizz 。如果數(shù)字中包含了7,那么忽略規(guī)則6中忽略被3整除的判定,并且忽略被5整除的判定,比如要報(bào)75的同學(xué)只報(bào)Fizz,其他case自己補(bǔ)齊 。

相關(guān)經(jīng)驗(yàn)推薦