2

我有一个 CDI Web 应用程序,它有一个 ServletContextListener 在启动时初始化一些东西。

在那个 ServletContextListener 中,这(除其他外)发生了:

@Inject
Config config;

public void contextInitialized(ServletContextEvent event) {
    ....

    config.init(....)
}

这工作得很好,因为这确保在其他 CDI bean 实例化之前执行 init(例如 App,它也注入 Config 本身)

但是,我无法弄清楚如何为单元测试实现这个逻辑。使用 jglue 的 CDI-Unit,我可以在我的测试类中执行此操作:

@Inject
Config config;

@Inject
App application;

但是当我运行测试时,我不断遇到问题,因为 App 中的 @PostConstruct 需要已经启动 Config。那么,我怎么可能及时调用 Config.init() 方法呢?

4

0 回答 0