小結
在開(kāi)發(fā)一個(gè)“重集成”的JavaEE Web應用的過(guò)程中,自動(dòng)化測試中對被集成服務(wù)的依賴(lài)使得構建過(guò)程變得緩慢而脆弱。通過(guò)對集成點(diǎn)實(shí)現的考察,我們識別出一個(gè)典型的集成點(diǎn)設計模式?;诖四J揭约芭c之對應的測試策略,借助Moco這個(gè)測試工具,我們能夠很好地隔離對被集成服務(wù)的依賴(lài),使構建過(guò)程快速而可靠。
隨后我們還考察了已有的集成點(diǎn)實(shí)現,并將其重構成為前文所述的結構,從而將同樣的測試策略應用于其上。通過(guò)這個(gè)過(guò)程,我們驗證了:本文所述的測試策略是普遍適用的,遺留系統同樣可以通過(guò)文中的重構過(guò)程達到解耦實(shí)現、從而分層測試的目標。
[1] “構建”一詞在本文中是指使用自動(dòng)化的構建工具(例如Maven)將源代碼變?yōu)榭山桓兜能浖倪^(guò)程。一般而言,JavaEE系統的構建過(guò)程通常包括編譯、代碼檢查、單元測試、集成測試、打包、功能測試等環(huán)節。
[2] https://github.com/dreamhead/moco
[3] http://www.openptk.org/
[4] http://dreamhead.blogbus.com/
[5] https://github.com/GarrettHeel/moco-maven-plugin
[6] http://cukes.info/
[7] 筆者使用的mock框架是Mockito:https://code.google.com/p/mockito/
[8] http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
[9] http://maven.apache.org/plugins-archives/maven-failsafe-plugin-2.12.4/
[10] http://velocity.apache.org/
[11] http://jdom.org/
[12] 《重構》,3.1小節。
感謝侯伯薇對本文的審校。
原文轉自:http://www.infoq.com/cn/articles/enterprise-systems-integration-points