Spring mvc中集成Junit4测试

相信各位程序猿在开发过程中都会使用junit,

一下就是我对于junit的个人总结:

Junit 单元测试能够很轻易的对单个类进行测试,相对于在每个类中增加了一个main方法,它是一种无状态或者状态确定的单元测试,对于测试含有大量的复杂的类之间有依赖关系的测试,还是比较麻烦,而spring mvc提供了大量类之间的管理,使类之间的关系完全透明化,显然,如果junit4 能够支持spring mvc的单元测试,那么无疑给开发带来了效率的极大提高。目前junit4 能够不但能够支持spring ioc的单元测试还能够支持spring mvc的测试。

下面介绍如何通过junit4 对spring ioc进行单元测试

maven依赖包


    junit
    junit
    4.11
    test
测试类
/**    
 * @filename User.java      
 * @date 2016年10月26日     
 */
package com.mjkf.demo.domain.model; 

/**      
 * @author farrell    
 * @date 2016年10月26日   
 */
 
public class User {
	
    private Integer id;
    
    private Integer userId;
    
    private String name;
    
    private Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", userId=" + userId + ", name=" + name + ", age=" + age + "]";
    }
}

 然后就是spring的配置文件,以下就不做过多的介绍了 
  

直接上junit代码

/**    
 * @filename MainTest.java     
 * @version www.mindai.com  
 * @date 2016年10月25日     
 */
package test.mjkf;

import java.util.List;

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 com.mjkf.demo.domain.model.User;
import com.mjkf.demo.service.IUserService;
import com.mjkf.framework.mybatis.mapper.entity.Example;
import com.mjkf.framework.mybatis.mapper.entity.Example.Criteria;

/**      
 * @author farrell    
 * @date 2016年10月25日   
 */

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath*:spring/applicationContext.xml" })
public class MainTest {
	
	@Autowired
	IUserService userService;

	@Test
	public void test(){ 
		List users = userService.findAll();
		for (User user : users) {
			System.out.println(user.toString());
		} 
	}
}

整理一下junit注解的含义

@Test:使用该注解的方法为测试方法,自动运行时能够识别并被执行
包含两个参数:expected=XXXException.class 期望出现的异常
timeout=xxx 设定程序运行的超时时间
@Ignore:被忽略的测试方法
@Before:在每个测试方法之前运行
@After: 在每个测试方法之后运行
@BeforeClass:在所有测试开始之前运行
@AfterClass:在所有测试开始之后运行

以上几个就是Junit 4的关键注解,熟练使用这几个注解,将来的测试用例编写肯定能事半功倍。
注意:@Before与@BeforeClass的区别
@Before会加在每个方法前执行,即有几个@Test就会执行几遍。
@BeforeClass 只在所有测试之前执行,只会执行一次。并且@BeforeClass修饰的方法必须是公有的静态方法(public static )。
@After和@AfterClass也类似
每个测试类中这四个注解不能重复使用,一个方法只能从这四个注解中挑选其中一个。


      





你可能感兴趣的:(java,java,junit)