4
我正在嘗試編寫測試驅動的Javascript。我知道,測試每個功能至關重要。但是我遇到了一個絆腳石,因爲我寫的插件需要有一些私人功能。我無法窺視他們如何運作。如果我想保持我的代碼測試良好而不改變它的結構,我需要做什麼? (我行與暴露一些API,雖然在一定限度內。)我應該測試一個Javascript插件的私有函數嗎?
我使用興農,QUnit和巴甫洛夫。
我正在嘗試編寫測試驅動的Javascript。我知道,測試每個功能至關重要。但是我遇到了一個絆腳石,因爲我寫的插件需要有一些私人功能。我無法窺視他們如何運作。如果我想保持我的代碼測試良好而不改變它的結構,我需要做什麼? (我行與暴露一些API,雖然在一定限度內。)我應該測試一個Javascript插件的私有函數嗎?
我使用興農,QUnit和巴甫洛夫。
如果您在做測試驅動開發(如標籤所示),每行產品代碼首先通過失敗的測試用例進行驗證。
換句話說,您的生產代碼的每一行的存在都被隱式測試,因爲沒有它,某些測試必然失敗。這就是說,你可以安全地假設私有函數/ lambda/closure已經從TDD的定義中進行了測試。
如果你有一個私人功能,你想知道如何測試它,這意味着你沒有在第一個地方做TDD - 現在你有一個問題。
總結起來 - 在測試之前從來不寫產品代碼。如果遵循這個規則,每行代碼都會被測試,不管它有多深。
有人在我意識到它再次如此真實之前不得不說出來。謝謝。 – picardo
@picardo - 這不回答如何測試_private_函數的核心問題。通過建議定義測試後綴,皮卡爾多提出了一個概念錯誤。但這不是問題的核心,這是令人失望的,因爲爲此得到真正的答案是很好的。 – jlarson