如何:在Maven项目(JUnit,Mockito,Hamcrest,AssertJ)中测试依赖项
對于當(dāng)今的大多數(shù)Java項(xiàng)目,JUnit本身還遠(yuǎn)遠(yuǎn)不夠。 您還需要一個(gè)模擬庫,也許還有其他東西。 在此迷你操作指南中,我介紹了可以在新的Java項(xiàng)目中開始的測試依賴項(xiàng)。
一切都始于JUnit
Maven存儲庫中的junit組中有兩個(gè)工件: junit和junit-dep 。 在4.9版之前,后者不包含對內(nèi)聯(lián)的Hamcrest的依賴。 今天,我們使用junit依賴關(guān)系如下:
dependency:tree產(chǎn)生:
[INFO] \- junit:junit:jar:4.11:test [INFO] \- org.hamcrest:hamcrest-core:jar:1.3:test莫基托
我們通常需要的下一個(gè)依賴關(guān)系是一個(gè)模擬框架。 毫無疑問, Mockito是最受歡迎的游戲之一。 它有兩個(gè)好處: mockito-all和mockito-core 。 第一個(gè)是將所有依賴項(xiàng)內(nèi)聯(lián)到其中的單個(gè)jar,而后者只是Mockito。 建議將mockito-core與JUnit版本4.11一起使用。 因此,我們添加依賴項(xiàng):
<dependency><groupId>org.mockito</groupId><artifactId>mockito-core</artifactId><version>1.9.5</version><scope>test</scope> </dependency>現(xiàn)在, dependency:tree產(chǎn)生:
[INFO] +- junit:junit:jar:4.11:test [INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test [INFO] \- org.mockito:mockito-core:jar:1.9.5:test [INFO] \- org.objenesis:objenesis:jar:1.0:testHamcrest
知道m(xù)ockito-core更適合于聲明式依賴性管理,因此我們將重寫對Hamcrest和Objenesis的依賴性,如下所示:
<dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-core</artifactId><version>1.3</version><scope>test</scope> </dependency><dependency><groupId>org.objenesis</groupId><artifactId>objenesis</artifactId><version>1.3</version><scope>test</scope> </dependency>有了這個(gè),我們可以輕松地添加Hamcrest庫,該庫提供了一個(gè)依賴對象的依賴項(xiàng)庫:
<dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-core</artifactId><version>1.3</version><scope>test</scope> </dependency><dependency><groupId>org.objenesis</groupId><artifactId>objenesis</artifactId><version>1.3</version><scope>test</scope> </dependency>并且dependency:tree產(chǎn)生:
[INFO] +- junit:junit:jar:4.11:test [INFO] +- org.mockito:mockito-core:jar:1.9.5:test [INFO] +- org.hamcrest:hamcrest-core:jar:1.3:test [INFO] +- org.hamcrest:hamcrest-library:jar:1.3:test [INFO] \- org.objenesis:objenesis:jar:1.3:test斷言
AssertJ – Java的流暢斷言–提供了一組豐富且直觀的強(qiáng)類型斷言,可用于單元測試。 AssertJ是FEST Assert的一個(gè)分支,我前一段時(shí)間在這篇文章中寫過。 那依賴性呢? 讓我們來看看:
<dependency><groupId>org.assertj</groupId><artifactId>assertj-core</artifactId><version>1.5.0</version><scope>test</scope> </dependency>結(jié)果如下樹:
[INFO] +- junit:junit:jar:4.11:test [INFO] +- org.mockito:mockito-core:jar:1.9.5:test [INFO] +- org.assertj:assertj-core:jar:1.5.0:test [INFO] +- org.hamcrest:hamcrest-core:jar:1.3:test [INFO] +- org.hamcrest:hamcrest-library:jar:1.3:test [INFO] \- org.objenesis:objenesis:jar:1.3:test最終剪輯
完整的Maven結(jié)構(gòu)如下所示:
<!-- Test --> <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope> </dependency> <dependency><groupId>org.mockito</groupId><artifactId>mockito-core</artifactId><version>1.9.5</version><scope>test</scope> </dependency> <dependency><groupId>org.assertj</groupId><artifactId>assertj-core</artifactId><version>1.5.0</version><scope>test</scope> </dependency> <dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-core</artifactId><version>1.3</version><scope>test</scope> </dependency> <dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-library</artifactId><version>1.3</version><scope>test</scope> </dependency> <dependency><groupId>org.objenesis</groupId><artifactId>objenesis</artifactId><version>1.3</version><scope>test</scope> </dependency>- 您可以在GitHub上的unit-testing-demo項(xiàng)目中找到此鏈接(鏈接到pom.xml ),也可以嘗試我的spring-mvc-quickstart-archetype (鏈接到pom.xml )。
翻譯自: https://www.javacodegeeks.com/2014/03/how-to-test-dependencies-in-a-maven-project-junit-mockito-hamcrest-assertj.html
總結(jié)
以上是生活随笔為你收集整理的如何:在Maven项目(JUnit,Mockito,Hamcrest,AssertJ)中测试依赖项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑自动播放功能(电脑自动播放功能怎么设
- 下一篇: 红帽正式宣布发布JBoss BPM Su