java - PostConstruct 未在 junit 中调用

标签 java spring junit mockito postconstruct

当我测试(JUnit)这个类时,当我调用 getdata 方法时,我得到 NullPointerException

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");
}

如何解决这个问题

最佳答案

在测试文件中运行测试之前调用初始化方法

@RunWith(MockitoJUnitRunner.class)
public class testClass {

    @InjectMocks
    private mainClass mainclass;

    @Mock
    private ClassA obja;

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

    }
}

关于java - PostConstruct 未在 junit 中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50716045/

相关文章:

java - 在 playframework 中使用 @Lob 作为字段

Eclipse 中的 Java EE 模块依赖项页面缺少项目

java - Java POJO 中的字段、变量、属性和属性有什么区别?

spring - CallableTaskletAdapter Spring Batch

java - 如何测试需要外部休息调用的方法?

java - 触发 Activiti 工作流程以执行 ReceiveTask 循环中的任务

java - Spring Data JPA - RepositoryConfigurationExtension 中的错误

java - spring boot oauth ExceptionHandlerExceptionResolver : NestedServletException: nested exception is java. lang.StackOverflowError]

java - Mockito 模拟不适用于此方法。难道我做错了什么?

java - 使用@SpringBootTest时如何在测试类中 Autowiring bean