我有一个 bean 的多个模拟实现,该 bean 被引用为 beanA。可以说 Mock 的参考名称:beanAMock1、beanAMock2 ... beanAMockN。
在上下文文件中,我根据上下文占位符 beanAImplementation 为 beanA 引用别名:
<alias name="${beanAImplementation}" alias="beanA"/>
还有其他具有像这样的模拟实现的bean(beanB,beanC ...)。而且我有一些测试套装,它们使用他们特定的 beanA、beanB ......实现集。
所有 bean 都有默认值用于它们的切换占位符,这些占位符在上下文中包含的属性文件中指定。
我正在寻找一种方法来更改每个测试套件的部分 bean 实现。
我知道三种方法可以做到这一点:
1)为每个测试套件创建额外的上下文文件,该文件将从单独的属性文件加载所需的属性 - 这种方式需要为每个测试套件(上下文,属性)创建两个额外的文件。
2) 使用别名定义为每个测试套件创建配置文件。据我了解,这需要为每个配置文件中的每个 bean 提供别名——而我有一组默认的 bean 实现。
3)手动在测试套件中创建上下文并覆盖所需的属性 - 我需要在测试套件中编写许多代码。
还有其他方法吗?(可能像#3,但使用 SpringJUnit4ClassRunner 或其子类,如果可以在注释中提供所需的属性 - 这似乎是一种最佳方法)