国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JMockit的常用注解

2019-11-11 05:25:41
字體:
來源:轉載
供稿:網友

JMockit的常用注解

1. @Tested

用于標識一個被測對象的實例,只能作用于具體類,而不能作用于接口,因為一個接口可能有多個實現類,被測試的只能是實現該接口的某一個具體的類通過@Tested標簽標識的被測對象實例,將會在測試方法執行之前被JMockit初始化。可通過@Injectable注解對被測對象的構造函數進行改寫。如果沒有@Injectable,則采用原有代碼進行初始化。被@Tested注解的對象,其域對象將自動被@Injectable注解生成的對象進行初始化如果@Tested的fullyInitialized=true,則被測對象的所有參數都需要被初始化。

2. @Injectable

標識只有一個指定的被測對象的內部變量被mock,其他和被mock實例采用相同對象的實例不受影響。被@Tested注解的對象,其域對象將自動被@Injectable注解生成的對象進行初始化

3. @Mocked

用于全局變量或方法的參數,標識一個指定的class的實例或被測對象的參數被Mock掉。JMockit根據Expectation方法中的設置來初始化被Mock對象的值。所有對象(基本類型和Array除外)都可以通過@Mocked標識被Mock掉。當一個被測對象的參數被Mock的時候,執行測試時,該參數將不再按照原有的代碼來實例化,而是將實例化的工作委托給JMockit來完成。被Mock的對象的除了繼承自Object的方法之外的所有方法(包括構造函數、靜態函數等)都會被JMockit重寫。

4. @Capturing

標識一個被Mock的類及其子類均被Mock。可以通過maxInstances方法來限定最大有多少層子類也被mock

舉個栗子(代碼片段):

DemoServiceImpl:

import org.sPRingframework.beans.factory.annotation.Autowired;public class DemoServiceImpl implements DemoService { @Autowired private DemoDao demoDao; @Autowired private StockDao stockDao; /** * 更新庫存 * * @return */ public int updateCount(int id, int count) { //...... UPDATE Database return stockDao.queryStock(id) - count;//返回數量 }}

DemoServiceImplAutowireTest:

import mockit.*;import mockit.integration.junit4.JMockit;import org.junit.Assert;import org.junit.Test;import org.junit.runner.RunWith;/** * Autowired對象 Mock測試 */@RunWith(JMockit.class)public class DemoServiceImplAutowireTest { /** * 被測試的對象,只能是具體類,而不能是接口,因為一個接口可能有多個實現類 * 所有帶有@Injectable的實例均被自動注入該實例中 */ @Tested private DemoServiceImpl noteService; /** * 自動注入到noteService中,只有一個StockDao的特定實例stockDao被MOCK掉 */ @Injectable private StockDao stockDao; @Test public void test() { // 1. record 錄制期望值 new Expectations() { { stockDao.queryStock(anyInt);// mock這個方法,無論傳入任何Int類型的值,都返回同樣的值,達到黑盒的效果 result = 50; times = 1; } }; // 2. replay 調用 Assert.assertEquals(50 - 10, noteService.updateCount(1, 10)); //驗證結果 //3.校驗是否只調用了一次。 new Verifications() { { stockDao.queryStock(anyInt); times = 1; } }; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安龙县| 伽师县| 黄平县| 瑞昌市| 波密县| 瓮安县| 清水县| 岳池县| 南召县| 师宗县| 康平县| 兰考县| 香格里拉县| 商南县| 沅陵县| 衡阳市| 安阳市| 大连市| 竹山县| 竹北市| 揭阳市| 达尔| 成都市| 娄烦县| 澄迈县| 拉孜县| 昌吉市| 财经| 武川县| 静乐县| 南宫市| 萨嘎县| 翁源县| 西平县| 芜湖市| 崇文区| 霍州市| 旌德县| 澄城县| 瓦房店市| 普定县|