5

我想在我的一个 IT 中使用 Springockito 模拟 DAO bean。在我的 IT 中,我必须使用 spring context.xml 来自动装配一些服务,还必须使用 mockApplication.xml 来模拟 DAO。那么,如何同时使用这两个 xml 配置文件呢?

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = SpringockitoContextLoader.class, locations = {"classpath*:/MockApplicationContext.xml"})
public class PayRollComponentFacadeIT {
    @Autowired
    IPayRollComponentFacade payRollComponentFacade;
    @ReplaceWithMock
    @Autowired
    IPayRollPersistenceManager payRollPersistenceManager;

我已将模拟上下文包含为 @ContextConfiguration(loader = SpringockitoContextLoader.class, locations = {"classpath*:/MockApplicationContext.xml"})

但我也必须包括春天的背景@ContextConfiguration(locations = {"classpath*:/testApplicationContext.xml"})

问候拉吉布

4

2 回答 2

4

Springockito-annotations 可以完全避免额外的模拟上下文的需要。

只需在同一个测试用例中枚举要模拟的 DAO:

@ReplaceWithMock
DAO dao;

此 dao 将在主应用程序上下文中自动替换。控制器会看到模拟的 bean。

于 2013-10-21T08:26:12.617 回答
1

ContextConfiguration.locations是一个数组,因此您可以根据需要指定位置。

@ContextConfiguration(
       loader = SpringockitoContextLoader.class,
       locations = {"classpath*:/MockApplicationContext.xml",
                    "classpath*:/testApplicationContext.xml"}
)

顺便说一句:(这只是我记忆中的一个提示,我不知道问题是否仍然存在,或者我做错了什么)很久以前我在使用两个位置参数时注意到了一些问题,因为它接缝弹簧创建了两个上下文(每个位置一个)。因此,我使用一个配置文件,inculde即两个普通配置文件。(@见https://stackoverflow.com/a/3414669/280244

于 2013-10-14T06:29:04.067 回答