生活随笔
收集整理的這篇文章主要介紹了
(三)JMockit API:@Mocked -基础篇
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
@Mocked可以修飾一個(gè)類,接口等。
當(dāng)@Mocked修飾一個(gè)類
import mockit.Mocked;
import org.junit.Assert;
import org.junit.Test;import java.util.Locale;**//@Mocked 注釋用途-01**
public class MockedClassTest {//加上了JMockit的API @Mocked,JMockit會(huì)幫我們實(shí)例化這個(gè)對(duì)象,不用擔(dān)心它為null@MockedLocale locale;@Testpublic void testMockedClass(){//靜態(tài)方法不起作用了,返回了nullAssert.assertTrue(locale.getDefault() == null);//非靜態(tài)方法(返回類型為string)也不起作用了,返回了nullAssert.assertTrue(locale.getCountry() == null);//自己new一個(gè),也同樣如此,方法都被mock了Locale chinaLocale = new Locale("zh","CN");Assert.assertTrue(chinaLocale.getCountry() == null);}
}
當(dāng)@Mocked修飾一個(gè)接口/抽象類時(shí)
**//@Mocked 注釋用途-02**
public class MockedInterFaceTest {//加上了JMockit的API @Mocked,JMockit會(huì)幫我們實(shí)例化這個(gè)對(duì)象,盡管這個(gè)對(duì)象的類型是一個(gè)接口,不用擔(dān)心它為null@MockedHTTPSession session;//當(dāng)@mocked 作用于interface@Testpublic void testMockedInterface(){// (返回類型為String)也不起作用了,返回了nullAssert.assertTrue(session.getId() == null);// (返回類型為原始類型)也不起作用了,返回了0Assert.assertTrue(session.getCreationTime() == 0L);// (返回類型為原非始類型,非String,返回的對(duì)象不為空,這個(gè)對(duì)象也是JMockit幫你實(shí)例化的,// 同樣這個(gè)實(shí)例化的對(duì)象也是一個(gè)Mocked對(duì)象)Assert.assertTrue(session.getServletContext() != null);// Mocked對(duì)象返回的Mocked對(duì)象,(返回類型為String)的方法也不起作用了,返回了nullAssert.assertTrue(session.getServletContext().getContextPath() == null);}
}
3. @Mocked功能總結(jié)
通過(guò)上述例子,可以看出:@Mocked修飾的類/接口,是告訴JMockit,幫我生成一個(gè)Mocked對(duì)象,這個(gè)對(duì)象方法(包含靜態(tài)方法)返回默認(rèn)值。
即如果返回類型為原始類型(short,int,float,double,long)就返回0,如果返回類型為String就返回null,如果返回類型是其它引用類型,則返回這個(gè)引用類型的Mocked對(duì)象(這一點(diǎn),是個(gè)遞歸的定義,需要好好理解一下)。
什么測(cè)試場(chǎng)景,我們要使用@Mocked
當(dāng)我們的測(cè)試程序依賴某個(gè)接口時(shí),用@Mocked非常適合了。只需要@Mocked一個(gè)注解,JMockit就能幫我們生成這個(gè)接口的實(shí)例。
比如在分布式系統(tǒng)中,我們的測(cè)試程序依賴某個(gè)接口的實(shí)例是在遠(yuǎn)程服務(wù)器端時(shí),我們?cè)诒镜貥?gòu)建是非常困難的,此時(shí)就交給@Mocked,就太輕松啦!
總結(jié)
以上是生活随笔為你收集整理的(三)JMockit API:@Mocked -基础篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。