繁体   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