PostConstruct не вызывается в юнитах
Когда я тестирую (JUnit) этот класс, я получаю NullPointerException, когда я вызываю метод getdata
private static final Map<String, Function<String, String>> REFERENCE_MAP = new HashMap<>();
@Autowired
private static classA aobj;
@PostConstruct
public void initialize() {
REFERENCE_MAP.put("s1", (bucketName) -> {
return aobj.getSomething1(bucketName);
});
REFERENCE_MAP.put("s2", (bucketName) -> {
return aobj.getSomething2(bucketName);
});
REFERENCE_MAP.put("s3", (bucketName) -> {
return aobj.getSomething3(bucketName);
});
REFERENCE_MAP.put("s4", (bucketName) -> {
return aobj.getSomething4(bucketName);
});
}
public String getdata() {
return REFERENCE_MAP.get("s1").apply("bucketname1");
}
как мне решить проблему
1 ответ
В тестовом файле вызовите метод initialize перед запуском тестов
@RunWith(MockitoJUnitRunner.class)
public class testClass {
@InjectMocks
private mainClass mainclass;
@Mock
private ClassA obja;
@Before
public void init() {
mainclass.initialize();
}
}