我想在我的一个IT中使用Springockito来模拟DAO bean。在我的IT中,我必须使用spring上下文.xml自动连接一些服务,并模拟应用程序.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"})
问候拉吉布
Springockito 注释可以完全避免额外的模拟上下文。
只需枚举要在同一测试用例中被嘲笑的 DAO:
@ReplaceWithMock
DAO dao;
此 dao 将在主应用程序上下文中自动替换。控制器将看到模拟的 bean。
ContextConfiguration.locations
是一个数组,所以你可以指定你想要的位置。
@ContextConfiguration(
loader = SpringockitoContextLoader.class,
locations = {"classpath*:/MockApplicationContext.xml",
"classpath*:/testApplicationContext.xml"}
)
顺便说一句:(这只是我记忆中的一个提示,我不知道问题是否仍然存在,或者我是否做错了什么)很久以前,我在使用两个位置参数时注意到了一些问题,因为弹簧会创建两个 conext(每个位置一个)。因此,我使用一个配置文件来inculde
两个普通配置文件。(@see https://stackoverflow.com/a/3414669/280244)