2017-06-19 77 views
0

我正在與一個團隊合作,我們不斷將console.logdebuggerbinding.pry(Ruby)放入我們的代碼中。爲此編寫單元測試的適當策略是什麼?我們目前沒有進行單元測試(我知道這很荒謬),但這是我們需要處理的,因爲我們意外地將console.logbinding.pry投入生產。如何測試代碼是否具有調試器?

+1

無論如何,binding.pry會打破你的規格。如果您使用的是AirBnB風格指南或手動配置它,eslint應該標記console.logs。否則,你會想要一個git pre-commit hook或者其他東西。 –

+1

一個非常有用的提示,試圖避免在將來避免這種情況:像鉻這樣的現代瀏覽器通過點擊源代碼標籤,內置到devtools中的調試器,絕對會打動您的頭腦,並刷新很多以查看日誌的輸出(在chrome中至少,您可以在代碼中突出顯示不同的表達式,只要它在當前上下文中,並且您可以看到它評估的結果) –

+0

@DaveNewton,我喜歡AirBnB風格指南,我已經將它出演了將近一年的時間,但是從未實現過它。 – dsomel21

回答

0

應該爲此創建兩個不同的問題(每種語言一個)。

對於JavaScript,你可以短路console.log通過定義console.log到一個空函數:

console.log =() => {}; // ES6 
console.log = function() {}; // ES5 

的最佳途徑,雖然會避免無意中犯console.log。最簡單的方法是使用類似ESLint的東西,並確保您有控制檯調用的規則。

如果你的lint沒有通過,你可以進一步爲它定義一個(或pre-commit)觸發器(或者與其他存儲庫中的等價物)。

我對Ruby不是很熟悉,但它可能與我剛纔提到的所有內容都有相同之處。