我想在我的应用程序/运行代码中初始化Spring一次,而且只在main(String [] args方法中执行此操作)。
现在我正在编写测试,我也想在我的单元测试代码中初始化一次(但它应该已经初始化我的应用程序运行。如何构建我的代码/类,以便我不会将我的应用程序代码中的代码复制粘贴到我的测试代码中,并重用main()中初始化的相同Spring上下文?
换句话说,我必须在应用程序代码中初始化,然后以某种方式传递给我的单元或系统测试代码,以便它始终具有相同的“上下文”实例。
我正在初始化
中的Spring上下文public static void main(String[] args) {
...
ApplicationContext context =
new AnnotationConfigApplicationContext(SpringConfig.class);
...
}
由于
J.V。
答案 0 :(得分:1)
您可以设置@Rule
。在所有测试中使用单例实例。让规则维护状态并在第一次调用时设置Spring上下文。所有其他测试只会使用现有的上下文。通过getter公开上下文,以便测试可以使用上下文来检索bean。
回复您的评论......首先,这里有一个结账链接: Rules Wiki - Custom Rules
getInstance
方法的单例类,测试将使用该方法来共享单个实例。