【发布时间】:2013-08-03 05:36:26
【问题描述】:
我有一个 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 或其子类,如果可以在注释中提供所需的属性 - 这似乎是一种最佳方法)
【问题讨论】: