【发布时间】:2012-12-20 04:34:25
【问题描述】:
我是 unitils(内置 dbunit)和 spring 的新手。在我工作的新地方,我可以看到一些测试是使用 spring 的,而另一些则使用不带 spring 的 unitils/dbunit。
有一种使用spring的推动力,所以我一直在尝试合并以下功能。
弹簧测试使用:
@RunWith(SpringJUnit4ClassRunner.class )
@ContextConfiguration(locations = { "classpath:spring-dev.xml" })
public class x(){
@Autowired
private ProfileDao profileDao;
@Test
@Rollback
@Transactional
public void shouldRetrieveProfileByUserNumber() {
Profile profile = profileDao.retrieveProfile("u1", "0000003861", null);
assertThat(profile.getUserNumber(), is("0000003861"));
}
这个类有@Autowired ProfileDao,它在使用@RunWith(SpringJUnit4ClassRunner.class)时工作。
Unitils 测试使用:
@RunWith(UnitilsJUnit4TestClassRunner.class)
@DataSet("WEB_SERVICE_DATASET.xml")
public class ServiceExceptionTest {}
运行时正确加载数据库等。
我想要实现的是将这些结合起来,以便我可以使用 @RunWith(UnitilsJUnit4TestClassRunner.class) 注释“Unitil'ise”我的课程,但也可以像上一个课程一样以正常方式使用 spring .
问题是我在使用 spring 版本时似乎无法统一我的课程,因为它们都是 JUnit4ClassRunner 扩展。
我尝试了多种变体,但都无法奏效。
任何人都可以建议一种体面的方法吗?
谢谢
【问题讨论】: