SSM框架整合Junit测试

基础框架为spring+springMVC+mybaties,spring版本4+,junit版本4+,接下来介绍junit接入步骤:

1、核心jar包引入:实际操作过程中出现很多类找不到异常报错,是因为有依赖的jar包未引入或是版本太低

       
            junit
            junit
            4.12
        

        
            org.springframework
            spring-test
            4.3.8.RELEASE
        
如果SpingMVC中配置了mappingJacksonHttpMessageConverter,则需注意jackson-core和jackson-databind两个jar的引入,版本可以统一为4.3.8.RELEASE

2、编写测试积累,BaseTest

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring-applicationContext.xml"})
public class BaseTest extends AbstractTransactionalJUnit4SpringContextTests{

    @Override
    @Resource(name = "dataSource")
    public void setDataSource(DataSource dataSource) {
        // TODO Auto-generated method stub
        super.setDataSource(dataSource);
    }
}
有多个上下文配置文件需要引入时,locations中“,”分隔,主要引入数据源配置文件和需要用到的bean的配置文件。

AbstractTransactionalJUnit4SpringContextTests : 决定事务是否生效,Spring4版本一下可以使用@Transactional和@TransactionConfiguration注解替代,spring4中已推荐

使用该类替代,缺省则所有的库操作都会产生影响。默认是需要继承的,确保测试是在纯净绿色环境下操作,不会影响表数据。

setDataSource : 方法是可以忽略的,但是配置的数据源名称要和默认的一样,否则需要使用@Resource注入,名称为配置的名称

3、测试类

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class UserMapperTest extends BaseTest {

    @Resource
    private UserMapper userMapper;

    @Test
    public void testSelectByLoginName() {
        User user = userMapper.selectByLoginName("zhaoliu");
        Assert.assertNotNull(user);
    }

    @Test
    public void testDeleteUserById() {
        Assert.assertTrue(userMapper.deleteByPrimaryKey(18) > 0);
    }

    @Test
    public void testInsert() {
        User user = new User();
        user.setAge(24);
        user.setCreateTime(new Date());
        user.setJoinDate(new Date());
        user.setLoginName("tianshi");
        user.setRealName("litian");
        user.setLoginPassword("123456");
        user.setSex("M");
        user.setRole("ADMIN");
        Assert.assertTrue(userMapper.insert(user) > 0);
    }
}

FixedMethodOrder : 定义测试方法执行顺序,有三种顺序可供选择,其中JVM方式方法的执行顺序随运行而定,可能每次执行顺序都有不同

 

你可能感兴趣的:(SSM框架整合Junit测试)