簡體   English   中英

Mockito.spy 不改變真實對象

[英]Mockito.spy not changing real object

以某種方式調用間諜對象的方法對真正的間諜對象沒有影響:

public class AAA {
    public int a;

    public void setA(int aa) {
        this.a = aa;
    }

    public int getA() {
        return a;
    }
}


public class Proof {
    @Test
    public void wtf() {
        AAA obj = new AAA();
        AAA spy = Mockito.spy(obj);

        spy.setA(22);

        assertThat(obj.getA(), equalTo(22));
    }
}

怎么可能? 我想Proof測試應該通過。

正如 Mockito 文檔中所見:

Mockito不會將調用委托給傳遞的真實實例,而是實際創建它的副本。

這意味着原始對象obj不會被監視對象spy發生的事情修改。

我做了一些測試,你應該對 spy 而不是 obj 進行斷言:

@Test
    public void wtf() {
        AAA obj = new AAA();
        AAA spy = Mockito.spy(obj);

        spy.setA(22);

        assertThat(spy.getA(), equalTo(22));
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM