PostConstruct не вызывается в юнитах - PullRequest
0 голосов
/ 06 июня 2018

Когда я тестирую (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 Ответ

0 голосов
/ 06 июня 2018

В тестовом файле вызовите метод initialize перед запуском тестов

@RunWith(MockitoJUnitRunner.class)
public class testClass {

    @InjectMocks
    private mainClass mainclass;

    @Mock
    private ClassA obja;

    @Before
    public void init() {
        mainclass.initialize();

    }
}
...