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