我有一個基本的maven項目和文件夾結構:-main和-test目錄。在基本的Java Maven項目中使用存根
我在主源代碼目錄下有一個包,它由幾個類組成,比如a.class b.class和c.class,全部在同一個包下。所有類都相互依賴。爲了進行適當的單元測試,並從每個類中刪除依賴關係,我編寫每個a,b和c類的存根類,並將它們定義爲具有相同的包,並將它們放入測試源目錄中。然後我運行:mvn test
很好,存根現在首先從類路徑中找到並使用,但我想修改類路徑(即時?),以便在測試類a時,我需要原來的a.class和stubs用於b.class和c.class。同樣,當測試類b時,我需要將原始類b和stub用於a.class和c.class。
如何使用Maven和JUnit完成此操作?
這在Java中是令人沮喪的,因爲在C++中,可以使用makefile源路徑和用戶定義的包含路徑在單元測試頭文件中強制首先找到存根,然後明確地將include添加到原始班級進行測試。
聽起來像你走錯了路。我會建議開始使用Mocking ...並且不要自己實現存根。此外,來自'src/test/java'的類是類路徑中第一個類。除此之外,如果您需要動態修改類路徑,那麼設計中會出現問題。你可以做一個簡單的示例項目,並把它放在Github上,這樣我們可以提出更好的建議... – khmarbaise
可能是一個好主意,使用像Mockito這樣的圖書館。 –