我的实践:
junit测试:【常用】
1. 通过@Test标记方法,可以单独执行该方法进行测试。
2. 新建ApplicationContext对象,传入spring上下文.xml文件名。
3. 调用getBean方法可以在Test类中获得需要@Autowired的服务。如IUserService userServiceImpl = (IUserService)ac.getBean("userService");,即可获得service,进而调用其方法。
4. 可以通过@Before注解,在测试类中定义一个before方法,用于执行在测试方法被执行之前,进行的一些操作。可以将ApplicationContext和service都声明为类区域,并在Before中建好,则在test方法中直接调用即可。
spring-test测试:
1. pom.xml中添加spring-test依赖。
2. 在测试类名上添加注解:
注解1:@RunWith(SpringJunit4ClassRunner.class)(就相当于测试类继承SpringJunit4ClassRunner类)。
注解2:@ContextConfiguration(location = {"value1","value2"},传入spring上下文.xml文件名(完整路径/单文件名 均可)。
注解3:
@TransactionConfiguration(defaultRollback = true)
@Transactional
此时,所有关于数据库的操作,在@Test方法执行完毕后将回滚,不会对现有数据造成影响。
3. 此时不再需要获取ac以及getBean获得服务。直接@Autowired即可加载服务。