Mockito @Mock 变量是否引用了被测类的变量?

问题描述 投票:0回答:1

我试图了解 Mockito 中的模拟是如何工作的。这是一个简单的例子。

我的问题是:

  • set
    的私有变量
    Container
    和类
    set
    的私有变量
    ContainerTest
    是否引用内存中的同一个对象?
  • 如何测试
    add()
    remove()
    这两种方法?我有下面几行和一个失败的断言。
public class Container
{
    private Set<Object> set;

    public Container()
    {
        set = new HashSet<>();
    }

    public add(Object o)
    {
        set.add(o);
    }

    public remove(Object a)
    {
        set.remove(o);
    }
}
public class ContainerTest
{
    @Mock
    private Set<Object> set;

    @InjectMocks
    private Container container;

    @Test
    public void testAdd()
    {
        container.add(mock(Object));
        // Assertion fails
        assertTrue(set.contains(any(Object)));
    }

    @Test
    public void testRemove()
    {
        // what do I do here?
    }
}
java unit-testing mocking mockito
1个回答
0
投票

回答您的问题:

  • 不,他们不
  • 你不需要。这些方法没有任何作用。我的意思是它们没有明显的效果。
© www.soinside.com 2019 - 2024. All rights reserved.