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

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

实际解释情况有点困难。我嘲笑一个类并将其传递给另一个类的构造函数。然后,我创建第一个类并在第二个类的方法下调用第一个类的方法,它返回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,然后是答案和间谍变种,但没有运气。可能,我想念一些东西,但我找不到。如果有人有任何想法,我会非常感激。谢谢。

android mockito
1个回答
0
投票

这里,

@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()); 
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.