單元測試時的new InitialContext() mock

 在單元測試中經常會碰到被測代碼裏面有類似:


往往是ejb調用,或者其他資源的調用。這個時候也許你要啓動application server......麻煩的單元測試-_-
其實在這樣的測試中你可能已經用了個jndi.properties,裏面定義了(例如在JBoss)
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory

想一下,如果我們把這個factory,替換成我們自己的mock factory...
java.naming.factory.initial=MichaelNamingContextFactory

 

哈,這樣就算被測代碼裏面有Context.lookup()代碼也可以mock了,server也不用起了。

其實我們這樣就等於實現了JNDI的一部分SPI。

發佈了21 篇原創文章 · 獲贊 5 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章