Возможна ли установка свойств для фиктивного объекта перед injectMocks - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь установить некоторые свойства для фиктивного объекта, прежде чем вводить их в тестовый класс, но это не работает

вот мой код:

public class MyClass {

    @Autowired
    private MyProperties myProperties;

    @Autowired
    private Properties properties;

    private final String id;
    private final String name;


    public MyClass(MyProperties myProperties){
        id = myProperties.getId();
        name = myProperties.getName();
    }

    public String Info(){
        return properties.getAddress();
    }
}

вот мой тест:

public class TestClass {

@Mock
private MyProperties myProperties;

@Mock
private Properties properties;

@InjectMocks
private MyClass testObject = new MyClass(myProperties);

@Before
public void setUp(){
    when(myProperties.getId()).thenReturn("1");
    when(myProperties.getUser()).thenReturn("user");
}

@Test
public void InfoTest(){
    when(properties.getAddress()).thenReturn("address");
    assertEquals("address", testObject.info());
}
}

Похоже, что @injectMocks происходит до того, как метод setUp (), а @InjectMocks уже помогают создать экземпляр объекта MyClass до того, когда ... thenReturn, поэтому он вызвал исключение NullPointerException

Итак, возможно ли установить свойства для фиктивного объекта перед injectMock? кто-нибудь может помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...