当mockito类作为依赖项传递时,Mockito不会返回mockValue

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当mockito类作为依赖项传递时,Mockito不会返回mockValue相关的知识,希望对你有一定的参考价值。

实际解释情况有点困难。我嘲笑一个类并将其传递给另一个类的构造函数。然后,我创建第一个类并在第二个类的方法下调用第一个类的方法,它返回null。请检查以下内容:

class A {
    public String getName() {
        return "Something";
    }
}

class B {
    private A a;
    public B(A insA) {
        this.a = insA;
    }
    public String createName() {
        return a.getName(); // when this is called, returns null.
    }
}

class TestB {
    public testBSomething() {
        A mockA = mock(A.class);
        when(mockA.getName()).thenReturn("Somevalue");
        B insB = new B(mockA);
        assertEqual("SomeValue", insB.createName()); // insB.createName() = null which should return "Somevalue"
    }
}

我也试过doReturn,然后是答案和间谍变种,但没有运气。可能,我想念一些东西,但我找不到。如果有人有任何想法,我会非常感激。谢谢。

答案

这里,

@RunWith(MockitoJUnitRunner.class)
public class TestB {

    @Mock
    A mockA;

    @InjectMocks
    B insB;

    @Before
    public void setup() {
        insB = new B(mockA);
    }

    @Test
    public void testBSomething() {
        when(mockA.getName()).thenReturn("SomeValue");
        Assert.assertEquals("SomeValue", insB.createName()); 
    }
}

以上是关于当mockito类作为依赖项传递时,Mockito不会返回mockValue的主要内容,如果未能解决你的问题,请参考以下文章

Mockito:等待与参数匹配的调用

text Mockito,PowerMock依赖项

Mockito单元测试

在另一个服务类 Mockito 中模拟具有依赖关系的服务类

Mockito单元测试

Gradle为scala和java测试分别测试类路径依赖项