<center id="wk8k6"><li id="wk8k6"></li></center>
<delect id="wk8k6"></delect>
  • <dfn id="wk8k6"><code id="wk8k6"></code></dfn><tbody id="wk8k6"></tbody>

    赤峰 鼎好職業(yè)技術(shù)學(xué)校--專注計算機(jī)教育27年官方網(wǎng)站!

    赤峰鼎好職業(yè)技術(shù)學(xué)校

    赤峰鼎好職業(yè)技術(shù)學(xué)校


    CHIFENG DINGHAO ZHIYE JISHU XUEXIAO

    全國咨詢熱線
    0476-2892015
    赤峰鼎好職業(yè)技術(shù)學(xué)校,赤峰計算機(jī)學(xué)校!
    當(dāng)前位置:首頁 > 教育教學(xué)> 實戰(zhàn)課

    軟件測試 白盒測試中使用Mockito + Junit進(jìn)行單元測試的手記

    人氣:   發(fā)表時間:2017-04-12 14:40:57   【

    使用 spy() 監(jiān)視真實的對象

      在使用 when(foo.call()).thenReturn("foo"); 的時候,事實上并沒有真的調(diào)用 foo.Call(),而是在運行測試的時候,在調(diào)用 foo.call() 的時候都給你返回 foo 這個返回值:當(dāng)然這個前提是 foo 是一個 Mock 對象(意味著加了 @Mock 注解)。

      如果要調(diào)用一個真實的對象的方法,同時又要控制它的返回值,那么可以這樣做:

    doReturn("foo").when(foo).call();

      當(dāng)然,這個 foo 需要是一個 spy 對象:

    foo=spy(fooBase);

      拿官方的例子做栗子:

    List list = new LinkedList();

    List spy = spy(list);

    // Right

    doReturn("foo").when(spy).get(0); 【0】

    // Wrong

    when(spy.get(0)).thenReturn("foo"); 【1】

      此處,spy 是一個監(jiān)視 list 的對象。

      【0】當(dāng)調(diào)用 spy.get(0) 的時候,并不是真的去調(diào)用這個方法,而是直接返回 foo。 【1】當(dāng)調(diào)用 spy.get(0) 的時候,會直接調(diào)用 list.get(0),因為它是一個真實的對象,然后因為這個 list 的 size()==0 因此會拋出一個數(shù)組越界的異常。


    赤峰鼎好計算機(jī)學(xué)校版權(quán)聲明書:
    本網(wǎng)站的所有內(nèi)容版權(quán)歸赤峰鼎好計算機(jī)學(xué)校所有,不允許復(fù)制及其他任何形式使用。
    對未經(jīng)許可擅自使用者,本校保留追究其法律責(zé)任的權(quán)利。

    在線客服

    招生咨詢
    點擊這里給我發(fā)消息
    其他咨詢
    點擊這里給我發(fā)消息
    亚洲无码av网页,国产午夜无码精品免费看浪潮,中国一级黄片视频无码,中文字幕亚洲制服丝袜无码 久久综合狠狠综合五十路 精品人妻视频一区二区
    <center id="wk8k6"><li id="wk8k6"></li></center>
      <delect id="wk8k6"></delect>
    • <dfn id="wk8k6"><code id="wk8k6"></code></dfn><tbody id="wk8k6"></tbody>