SpringMVC测试@Test

@RunWith(SpringJUnit4ClassRunner.class)  
@ContextConfiguration({"classpath*:applicationContext.xml"})  
public class SpringTestUser {  
    private static final Logger logger = LoggerFactory.getLogger(SpringTestUser.class);  

    @Resource  
    private UserDAO userDao;  

    @Test  
    public void testGetUserById() {  
        Integer userId = 1;  
        User user = userDao.getUserById(userId);  
        logger.info("用户的名字是 : " + user.getName());  
    }  
}  

注意标签@RunWith(SpringJUnit4ClassRunner.class)说的是我们这段代码其实用的还是JUnit进行测试的
@ContextConfiguration({“classpath*:applicationContext.xml”})以标签的形式完成对配置文件的加载

import static org.Junit.Assert.assertEquals; 

import org.Junit.Test; 
import org.Junit.runner.RunWith; 
import org.Springframework.beans.factory.annotation.Autowired; 
import org.Springframework.test.context.ContextConfiguration; 
import org.Springframework.test.context.Junit4.SpringJUnit4ClassRunner; 
import org.Springframework.transaction.annotation.Transactional; 

import domain.Account; 

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration("/config/Spring-db1.xml") 
@Transactional 
public class AccountServiceTest1 { 
    @Autowired 
    private AccountService service; 

    @Test 
    public void testGetAcccountById() { 
Account acct = Account.getAccount(1, "user01", 18, "M"); 
        service.insertIfNotExist(acct); 
        Account acct2 = service.getAccountById(1); 
        assertEquals(acct,acct2); 
        }
    } 
  • @RunWith 注释标签是 Junit 提供的,用来说明此测试类的运行者,这里用了 SpringJUnit4ClassRunner,这个类是一个针对 Junit 运行环境的自定义扩展,用来标准化在 Spring 环境中 Junit4.5 的测试用例,例如支持的注释标签的标准化

  • @ContextConfiguration 注释标签是 Spring test context 提供的,用来指定 Spring 配置信息的来源,支持指定 XML 文件位置或者 Spring 配置类名,这里我们指定 classpath 下的 /config/Spring-db1.xml 为配置文件的位置

  • @Transactional 注释标签是表明此测试类的事务启用,这样所有的测试方案都会自动的 rollback,即您不用自己清除自己所做的任何对数据库的变更了

  • @Autowired 体现了我们的测试类也是在 Spring 的容器中管理的,他可以获取容器的 bean 的注入,您不用自己手工获取要测试的 bean 实例了

小结

如果您希望在 Spring 环境中进行单元测试,那么可以做如下配置:
继续使用 Junit4 测试框架,包括其 @Test 注释标签和相关的类和方法的定义,这些都不用变

  • 您需要通过 @RunWith(SpringJUnit4ClassRunner.class) 来启动 Spring 对测试类的支持
  • 您需要通过 @ContextConfiguration 注释标签来指定 Spring 配置文件或者配置类的位置
  • 需要通过 @Transactional 来启用自动的事务管理
  • 您可以使用 @Autowired 自动织入 Spring 的 bean 用来测试

另外您不再需要:

  • 手工加载 Spring 的配置文件
  • 手工清理数据库的每次变更
  • 手工获取 application context 然后获取 bean 实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值