Mockito не возвращает mockValue, когда класс mockito передается как зависимость - PullRequest
0 голосов
/ 15 декабря 2018

Немного сложно объяснить ситуацию на самом деле.Я издеваюсь над классом и передаю его конструктору другого класса.Затем я создаю первый класс и вызываю метод первого класса в методе второго класса, он возвращает ноль.Пожалуйста, проверьте ниже:

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, затем ответ и варианты шпиона, но не повезло.Возможно, я что-то упустил, но не смог найти.Если у кого-то есть идея, я буду очень признателен.Спасибо.

1 Ответ

0 голосов
/ 20 декабря 2018

Здесь

@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()); 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...