日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

junit mockito_JUnit和Mockito合作

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 junit mockito_JUnit和Mockito合作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

junit mockito

這次,我想對測試框架Mockito進行概述。 毫無疑問,這是用于測試Java代碼的最受歡迎的工具之一。 我已經對Mockito的競爭對手EasyMock進行了概述。 這篇文章將基于有關EasyMock的示例應用程序。 我的意思是代表咖啡機功能的類。

使用Mockito準備測試

通常,我將使用Maven進行項目設置。 因此,要使Mockito在項目中可用,我需要在pom.xml文件中添加以下依賴項:

<dependencies><dependency><groupid>org.mockito</groupid><artifactid>mockito-all</artifactid><version>1.9.5</version></dependency><dependency><groupid>junit</groupid><artifactid>junit</artifactid><version>4.11</version></dependency></dependencies>

請注意,Mockito的正常功能不需要JUnit,可以用相同的方式使用TestNG來代替它。 因此,您可以根據自己的決定使用JUnit或TestNG。

讓我們進一步。 如前所述,本文中的所有測試都是針對EasyMock帖子中的示例應用程序編寫的。 您可以從此處僅閱讀“應用程序代碼”部分。 這足以了解測試的主題。

Mockito和JUnit測試

我想從關于Mockito框架幾句話開始本節。 絕對可以在Mockito的幫助下完成測試中希望做的所有事情。 您可以在清除API的幫助下創建模擬,存根,進行驗證以及所有這些操作。
現在該看看使用Mockito進行單元測試的樣子了。

import static org.junit.Assert.*; import static org.mockito.Mockito.*;import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner;import com.app.data.Portion; import com.app.exceptions.NotEnoughException; import com.app.mechanism.CoffeeMachine; import com.app.mechanism.interfaces.ICoffeeMachine; import com.app.mechanism.interfaces.IContainer;@RunWith(MockitoJUnitRunner.class) public class CoffeeMachineTest {ICoffeeMachine coffeeMachine;@MockIContainer coffeeContainer;@MockIContainer waterContainer;@Beforepublic void setUp() {coffeeMachine = new CoffeeMachine(coffeeContainer, waterContainer);}@Afterpublic void tearDown() {coffeeContainer = null;waterContainer = null;coffeeMachine = null; }@Testpublic void testMakeCoffe() throws NotEnoughException {when(coffeeContainer.getPortion(Portion.LARGE)).thenReturn(true);when(waterContainer.getPortion(Portion.LARGE)).thenReturn(true);assertTrue(coffeeMachine.makeCoffee(Portion.LARGE));}@Testpublic void testNotEnoughException() throws NotEnoughException {when(coffeeContainer.getPortion(Portion.SMALL)).thenReturn(false);when(waterContainer.getPortion(Portion.SMALL)).thenReturn(true);assertFalse(coffeeMachine.makeCoffee(Portion.SMALL));}}

我將用幾句話來解釋測試類中的情況。 我正在測試咖啡機,為此,我為咖啡容器和水容器創建了模擬。 進一步在測試中,我將為模擬定義一些行為,并根據這臺咖啡機執行預期的操作。

...@MockIContainer coffeeContainer;@MockIContainer waterContainer; ...

在上面的代碼中,我聲明了兩個模擬。 以這種方式創建模擬需要將@RunWith(MockitoJUnitRunner.class)批注應用于測試類。 或者,您可以使用MockitoAnnotations.initMocks(testClass); 在運行任何測試之前,例如,您可以將此代碼段放入@Before注釋的方法中。

... when(coffeeContainer.getPortion(Portion.LARGE)).thenReturn(true); ...

在Mockito中定義模擬的行為非常方便。 您可以指定在調用特定方法后應返回的內容。 注意,我在測試類中進行了幾次靜態導入 。

摘要

Mockito框架征服了我的心。 這非常方便,其API清晰,使用簡便。 Mockito包含許多在單元測試開發過程中可能需要的方法。 當然,一篇文章太小而無法描述Mockito的所有功能,因此我建議您使用官方文檔的跟隨鏈接進行更深入的研究。

參考: Fruzenshtein的便箋博客中來自我們的JCG合作伙伴 Alexey Zvolinskiy的JUnit和Mockito合作 。

翻譯自: https://www.javacodegeeks.com/2013/05/junit-and-mockito-cooperation.html

junit mockito

總結

以上是生活随笔為你收集整理的junit mockito_JUnit和Mockito合作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。