雖然一直不被認同,但我還是認為 test case 只需要寫 setUp() 不用寫 tearDown()
latest #15
意思不是不一定寫 tearDown() 而是幾乎都不寫。留了垃圾也不清。
意思是 即使我們用 tearDown() 清垃圾。仍然可能因為程式的 bug 沒清乾淨但我們不知道。
當有 100 支 test case 一起跑時,第 100 支 test case 可能因為前面的人沒清乾淨而有錯。如果它單獨跑就沒錯。
這時有三種解法 : (1) 用二分搜尋法找出兇手。 (2) 把第 100 支移到最前面 (可能因此害死其他人)。 (3) 第 100 支在 setUp() 時自己清出一塊乾淨的空間,不管兇手是誰。
如果用第三種方法,常常造成 setUp() 和 tearDown() 寫的是一樣的東西。可以在 setUp() 時直接呼叫 tearDown()
如果大部分 test case 都在 setUp() 時呼叫 tearDown(),有點浪費時間。反正每支 test case 都要知道怎麼清出乾淨的空間。乾脆就不寫 tearDown() 了。
感覺tearDown是備而不用,但偶爾還是需要就是了
如果在 setUp() 起了一個 daemon,不關掉會佔用資源,那我還是會 tearDown() 的。
主要是這種。在 singleton 塞值也有此情形。如果是簡單測功能的就更不需要 tearDown 了。
back to top