Я пытаюсь установить некоторые свойства для фиктивного объекта, прежде чем вводить их в тестовый класс, но это не работает
вот мой код:
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? кто-нибудь может помочь?