2012-04-23 53 views
0

我按照本指南http://javaeenotes.blogspot.com/2011/06/short-introduction-to-jmock.html什麼構成「標準jmock庫」?

我收到錯誤

java.lang.SecurityException: class "org.hamcrest.TypeSafeMatcher"'s signer information does not match signer information of other classes in the same package. 

在引導作者說:

的解決方案是確保JMock的庫之前包括構建路徑中的 標準jUnit庫。

什麼構成了「標準jmock庫」和「junit庫」? Junit只有一個罐子,所以很容易,但jmock帶有超過10種不同的罐子。

我一直在使用:J-unit4.10,JMock的-2.5,hamrest核和hamcrest庫

什麼hamcrest核心和圖書館類?

回答

0

JUnit用於執行單元測試以測試您的方法。 JMock用於在上下文中測試程序,您將不得不知道您期望發送到上下文(ENV)的內容以及回答上下文的內容。

JMock使用JUnit,這就是爲什麼,爲了避免依賴衝突,您需要在JUnit之前包含它。

如果您需要使用JMock腳本或JMock核心中不可用的任何其他功能性,那麼JMock的10個庫就是一種附加組件。

你不需要知道Hamcrest核心庫使用JMock。只需遵循網站上的指南(不要使用JMock的第1版)並以正確的順序組織您的庫(JUnit應該是最後一個以避免您的錯誤)

0

模擬框架licke jmock做一些黑魔法在後臺 (包括但不限於運行時字節碼操作) 提供模擬方法類和其他。爲了能夠做到這一點, 基本junit類的一些調整是必要的,唯一的方法是在加載JU類之前將 註冊爲java代理。

而且,把你的模擬框架的JUnit之前在類路徑

1

我是在這兩個庫的提交。 JMock依賴hamcrest來幫助決定是否預期對某個對象的調用。我建議只使用hamcrest-jar。 hamcrest核心與圖書館之間的分裂是將匹配和報告差異的基本行爲與最常見情況的便利實現區分開來。

最後,如果您使用的是hamcrest,我建議您使用junit-dep jar來避免與junit.jar中包含的某些hamcrest功能發生衝突

相關問題