在單元測試中,不要模擬不屬于你的類型(Don’t mock types you don’t own)是一個重要的原則。這是因為外部庫或框架的類型(如第三方依賴)可能會在未來的版本中發生變化,而你的模擬可能無法反映這些變化,從而導致測試失效。
以下是一個基于Java Mockito 的示例,展示如何避免模擬不屬于你的類型,以及如何使用抽象或接口來隔離外部依賴。
示例場景
假設我們有一個服務類 NotificationService,它依賴于一個外部庫 ExternalEmailClient 來發送電子郵件。ExternalEmailClient 是一個第三方類,我們無法直接控制或修改它。
源代碼
// 第三方庫類(不屬于我們的代碼)<