我正在爲消息傳遞系統編寫集成測試。大多數測試在流程的各個階段收集messgaes及其各種代碼路徑端到端的計數。我目前的測試已經變得非常干擾,因爲我在這些消息傳遞組件中有許多public static AtomicInteger
- 我在處理消息時增加它們 - 然後測試對這些計數作出斷言。非侵入式集成測試
最糟糕的部分是,我將不得不在刪除這些計數器時將其部署到易於增加錯誤的產品中。
我該如何設計自己的測試,以便通過這些組件傳遞消息的計數,而不需要在我的課程中實際填充計數器?我正在考慮對實際組件進行子分類並覆蓋方法,並將子計數器移到子類方法中 - 並在我的測試中使用這些子類 - 關於更好設計的任何其他想法?
整套集成測試真的是最好的解決方案嗎?如果你想測試內部,請在單元測試中進行。集成測試只能用於測試外部公開的功能。 – 2012-07-06 17:31:23
考慮到使用情況的數量,覆蓋所有代碼路徑組合所需的單元測試數量變得過高 - 幾乎會導致單元測試疲勞。端到端測試是強制性的。 – Bhaskar 2012-07-06 17:38:19
我不會刪除跟蹤系統執行統計信息的代碼。您可以使用JMX公開這些信息,並設置監控以關注生產中的系統。我會嘗試使用他人已經提供的建議來設計它。 – 2012-07-06 17:46:22