溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java5中單元測(cè)試的使用方法

發(fā)布時(shí)間:2021-06-22 16:14:19 來(lái)源:億速云 閱讀:167 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Java5中單元測(cè)試的使用方法”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Java5中單元測(cè)試的使用方法”吧!

1、JUnit4使用Java5中的注解(annotation)
@Before:初始化方法   對(duì)于每一個(gè)測(cè)試方法都要執(zhí)行一次(注意與BeforeClass區(qū)別,后者是對(duì)于所有方法執(zhí)行一次)
@After:釋放資源  對(duì)于每一個(gè)測(cè)試方法都要執(zhí)行一次(注意與AfterClass區(qū)別,后者是對(duì)于所有方法執(zhí)行一次)
@Test:測(cè)試方法,在這里可以測(cè)試期望異常和超時(shí)時(shí)間
@Test(expected=ArithmeticException.class)檢查被測(cè)方法是否拋出ArithmeticException異常
@Ignore:忽略的測(cè)試方法
@BeforeClass:針對(duì)所有測(cè)試,只執(zhí)行一次,且必須為static void
@AfterClass:針對(duì)所有測(cè)試,只執(zhí)行一次,且必須為static void
一個(gè)JUnit4的單元測(cè)試用例執(zhí)行順序?yàn)椋?br/> @BeforeClass -> @Before -> @Test -> @After -> @AfterClass;
每一個(gè)測(cè)試方法的調(diào)用順序?yàn)椋?/p>

@Before -> @Test -> @After;

2、執(zhí)行順序
隨機(jī)執(zhí)行
@FixMethodOrder(MethodSorters.DEFAULT)
public class TestOrder
按testcase名稱字符串順序執(zhí)行
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestOrder

3、代碼注入Mock
JMokit中的@Mocked與@Injectable區(qū)別

public class CommonDaoTest {
    @Mock
    private MongoTemplate mongoTemplate;  //注入mongdb mock類,不訪問(wèn)庫(kù)
    @InjectMocks      //注入的目標(biāo)類,要實(shí)現(xiàn)的test類
    private CommonDao commonDao;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this); //此處一定要記得加上,否則出錯(cuò)
    }

    @Test
    public void dropCollectionName() {
        doNothing().when(mongoTemplate).dropCollection("116");
        commonDao.dropCollectionName("116");    //CommonDao實(shí)現(xiàn)了刪除文檔的功能
    }
}
<dependency>
            <groupId>org.jmockit</groupId>
            <artifactId>jmockit</artifactId>
            <version>1.23</version>
            <scope>test</scope>
</dependency>

4、各種mock示例
when(systemConfigurationService.getConfiguration(eq(String.class), anyString())).thenReturn("(\\d+\\.*\\d*)");
        when(objService.getKnowledgePointList(anyList())).thenReturn(objectiveKnowledges);
        
when(mongoTemplate.updateFirst(any(Query.class), any(Update.class), anyString())).thenReturn(mock(WriteResult.class));

when(mongoTemplate.collectionExists("111")).thenReturn(false);

when(configRepository.findByType(anyString())).thenReturn(mock(Config.class));

到此,相信大家對(duì)“Java5中單元測(cè)試的使用方法”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI