Mockito單元測試框架學習


基本使用方法:

http://zhongl.iteye.com/blog/296136

 

一、問題:如何將mock的類自動注入到待測類,特別是在沒有setter方法的情況下。

解答:

前提:待測的service類及其依賴的其他類都是處在被spring管理中的。

做法:在測試類中,只要將待測的類標注為@InjectMocks,將其依賴的其他類標注為 @Mock,

就可以使用MockitoAnnotations.initMocks(this);這句話自動將依賴的類注入待測類,如果依賴類在spring的管理下有自己的name,那么甚至在待測類中都不需要寫setter方法。

 

例:

1、待測類

@Component("abcService")

public class AbcService {

    @Resource(name="aaaDao")

    private AaaDao aaaDao;

    @Resource(name="bbbDao")

    private BbbDao bbbDao;

......//注:此處省略的代碼中並不包含aaaDao和bbbDao的setter方法。

}

 

2、測試類

public class AbcServiceTest{

    @InjectMocks

    AbcService abcService;

 

    @Mock

    AaaDao aaaDao;

 

    @Mock

    BbbDao bbbDao;

 

    @Before

    public void setup(){

         MockitoAnnotations.initMocks(this);//這句話執行以后,aaaDao和bbbDao自動注入到abcService中。

         //在這之后,你就可以放心大膽地使用when().then()等進行更詳細的設置。

    }

}

 

參考資料 :

http://www.cnblogs.com/alphablox/archive/2012/12/09/2810538.html

http://www.cnblogs.com/alphablox/archive/2013/04/06/3002152.html

 

二、問題:如何對連續的調用進行不同的返回 

 

參考資料:

http://qiuguo0205.iteye.com/blog/1456528


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM