gpt4 book ai didi

java - 显式调用 @PostConstruct 注解的方法

转载 作者:行者123 更新时间:2023-11-30 03:00:53 25 4
gpt4 key购买 nike

我正在为我的一个 java 类编写 junit 测试。我有一个 @PostConstruct 带注释的方法,如下所示,我想为其编写单元测试:

@PostConstruct
public void initialize() {
try {
logger.info("Bootstrapping Safenet Initialization");
String hello = cryptographicController.encrypt("Hello");
logger.info("Bootstrapping Safenet " + hello);
} catch (Throwable ex) {
logger.error("Error initializing Crypto", ex);
throw new DataConverterException();
}
}

我想编写单元测试来测试DataConverterException。但我不确定是否可以从单元测试中显式调用 initialize 方法。

我该怎么做?

最佳答案

案例1:

如果在xml中创建了java类的bean并加载了上下文配置,则将自动调用bean生命周期方法。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "XX")

案例2:

Bean生命周期方法@PostConstruct@PreDestroy应该在单元测试用例中显式调用来测试。

如果测试类的对象是像下面这样创建的

JavaClass javaClass = new JavaClass();

那么是的,由于bean还没有创建,那么我们需要显式调用initialize方法。

这两种情况都允许您测试所需的区域,

模拟 cryptographicController 应该为您提供所需的选项

@Test(expected=DataConverterException.class)
public void test() {
doThrow(new RuntimeException()).when(cryptographicController).encrypt("Hello");
javaClass.initialize();
}

关于java - 显式调用 @PostConstruct 注解的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36006834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com