AEM中的单元测试(大声思考)
如果要在AEM中進行單元測試,這不是任何建議,而是各種思想的總結和一些可供選擇的選項。 一段時間以前,我已經為客戶進行了一些研究,這篇文章在很大程度上受到了這項工作的影響,但是很多上下文相關的東西已經被淘汰了。 我仍然盡力確保本文的精髓。 我將嘗試盡快進行后續處理,并提供更多詳細信息。
選項1:使用吊索工具和容器內測試
Apache sling發布了一組工具http://sling.apache.org/documentation/development/sling-testing-tools.html ,可幫助應用程序中的單元測試。 那里的工具提供了幾種執行測試的方法,例如a)沒有外部依賴性的老式JUnit,或者b)使用模擬-吊索提供了現成的模擬,可以減少工作量,或者c)我們可以將測試用例部署在CQ盒中(或吊索),然后使用OSGi引用運行。
我在這里建議的方法是,我們將在已經托管的CQ實例中部署JUnit,并遠程調用測試用例。 我知道這不是“老學校單元測試,因為我沒有抽象任何依賴關系,并且我的單元包括依賴關系”,但是我有這樣做的理由。 事實上,如果您一直在跟進有關單元測試的文章,您會知道我不是模擬的忠實擁護者,并且如果我可以進行設置,那么實際上很高興對依賴項進行任何單元測試。
為此,我們需要做一些事情,如下所示:
選項2:使用硒作為功能測試工具
在這種方法中,我建議根本不要使用JUnits。 這個想法是使用系統測試的原理,它可以測試代碼中的所有單元。 這與傳統的單元測試方法大不相同,在傳統的單元測試中,所有依賴項都被模擬掉了,我們可以快速運行多個測試。 盡管選項1也具有相同的效果,但在這種方法中,我們更進一步,并利用了我們的系統測試套件。 這個想法不是針對每個用例都執行此操作,而是獲取關鍵業務功能,例如結帳,訂單管理,帳戶管理并使其自動化。 然后可以將Selenium腳本與JUnit運行器集成,在這里我們可以將其與CI工具集成,并可以從Eclipse或Maven運行它,因此可以與CI本身集成。 這為我們節省了編寫那些JUnit和獨立管理整個套件的時間。 這種方法還需要一個托管的CQ實例,該實例具有產品數據設置,一些內容設置和后端集成,如選項1所示。
當然,這有點棘手,不是真正的單元測試,但是如果做得好,它會有一些巨大的好處。
翻譯自: https://www.javacodegeeks.com/2015/01/unit-testing-in-aem-thinking-loud.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的AEM中的单元测试(大声思考)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 钱放余额宝安全吗?
- 下一篇: Java 8的装饰器模式