Spring3.0的单元测试

昨天搭建了SSH框架,在写单元测试的时候,发现AbstractTransactionalDataSourceSpringContextTests等这些类已经过期了,就想到一定会有新的测试工具类,翻了半天的文档,找到了解决方案,下面是使用的例子:
@RunWith(SpringJUnit4ClassRunner.class) //指定测试用例的运行器 这里是指定了Junit4   

@ContextConfiguration({"/applicationContext-hibernate.xml","/applicationContext-beans.xml"}) //指定Spring的配置文件 /为classpath下   


//@Transactional //对所有的测试方法都使用事务,并在测试完成后回滚事务   


public class UserServiceImplTest {   


//  @Autowired   


//  private ApplicationContext appplicationContext; //自动注入applicationContext,这样就可以使用appli*.getBean("beanName")   


    @Resource       //会自动注入 default by type   


    private UserDao userDao;   


    @Resource  


    private UserService userService;   

       

    @Before //在每个测试用例方法之前都会执行   


    public void init(){   

    }   
       

    @After //在每个测试用例执行完之后执行   


    public void destory(){   

    }   
       

    @Test  


    @Transactional  //使用该注释会使用事务,而且在测试完成之后会回滚事务,也就是说在该方法中做出的一切操作都不会对数据库中的数据产生任何影响   


//  @Rollback(false) //这里设置为false,就让事务不回滚   


    public void testAdd(){   

        Assert.assertNotNull(userDao);   
        Assert.assertNotNull(userService);   

        userDao.add(new User("userDao1","world!"));   


        userService.registerUser(new User("UserService1","world!"));   

    }   
       

    public void testTest() {   

           
    }   
}  
@RunWith(SpringJUnit4ClassRunner.class) //指定测试用例的运行器 这里是指定了Junit4
@ContextConfiguration({"/applicationContext-hibernate.xml","/applicationContext-beans.xml"}) //指定Spring的配置文件 /为classpath下
//@Transactional //对所有的测试方法都使用事务,并在测试完成后回滚事务
public class UserServiceImplTest {
//	@Autowired
//	private ApplicationContext appplicationContext; //自动注入applicationContext,这样就可以使用appli*.getBean("beanName")
	@Resource 		//会自动注入 default by type
	private UserDao userDao;
	@Resource
	private UserService userService;
	
	@Before //在每个测试用例方法之前都会执行
	public void init(){
	}
	
	@After //在每个测试用例执行完之后执行
	public void destory(){
	}
	
	@Test
	@Transactional  //使用该注释会使用事务,而且在测试完成之后会回滚事务,也就是说在该方法中做出的一切操作都不会对数据库中的数据产生任何影响
//	@Rollback(false) //这里设置为false,就让事务不回滚
	public void testAdd(){
		Assert.assertNotNull(userDao);
		Assert.assertNotNull(userService);
		userDao.add(new User("userDao1","world!"));
		userService.registerUser(new User("UserService1","world!"));
	}
	
	public void testTest() {
		
	}
}


可以看到很简单的写个@Resource 即可。
--------
不要忘了把spring-test-3.0.0.RELEASE.jar包放到classpath中。
jar包我附上。

相关推荐