這兩天彷彿遊歷一趟精彩的罐頭地獄(Jar Hell)。本以為可以很簡單的結合最新的JUnit 4.x+Spring 2.5.x+Eclipse(好啦!我承認有點舊,是用3.4.1版)作一個Spring JUnit的Demo,哪知弄了快兩天。
事情是這樣,被主管要求弄一個簡單的JUnit的Sample簡報。但事實沒那麼簡單,若是要做給Developers看的Best Practice白箱測試,不是弄一個Calculator飯粒就可以唬弄。想想看,Java專案系統的開發,比例最多的是什麼組合?IDE是Eclipse拔頭籌,核心框架非Spring莫屬,再延伸一下就有前後端的需求,但比較多樣,前端有Struts、Struts2、JSF、Flex等…,後端雖近期有JPA想統一江湖,但ORM的Hibernate、iBatis、TopLink和JDO各領風騷,非ORM的有Spring JDBC、甚至直接拿JDBC搭配個Pool也算;而測試工具雖然也jMock出現,但仍是JUnit獨占鰲頭,而且互不抵觸,與jMock分居於白箱與黑箱測試龍頭。哈拉完畢,以下開始精彩的Jar Hell之旅,就單純的結合JUnit+Spring+Eclipse: