我是unitils(内置dbunit)和spring的新手。在我工作的新地方,我可以看到一些测试是使用 spring 的,而其他测试则使用不带 spring 的 unitils/dbunit。
有一个使用弹簧的推动力,所以我一直在尝试合并以下功能。
弹簧测试使用:
@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 扩展。
我尝试了各种变体,但都无法正常工作。
任何人都可以建议一种体面的方式吗?
谢谢