码迷,mamicode.com
首页 > 编程语言 > 详细

SpringFramework4系列之SpringTest:(一)Spring4整合Junit

时间:2015-07-13 14:18:52      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:


构建Spring 应用之后呢,编写单元测试就显得比较麻烦了,因为绝大部分的类都交给了spring托管了,需要人为的去加载spring的配置文件等等,或者需要编码去从spring 哪里得到某个类的实例等。

1.1 整合SpringTest之前的单元测试编码

public class TestDemo {
    private static DBDao dbDao;
    private Object[] testData;

    @BeforeClass
    public static void setUpBeforeClass() throws NamingException {    
        // Initialize Spring Context
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        dbDao= context.getBean(DBDao .class);

    }

    @AfterClass
    public static void tearDownAfterClass() {}

    @Before
    public void setUp() {
    //prepare test data here
    testData =  {.........};
    }

    @After
    public void tearDown() {
    }

    @Test
    public void testSave() {
        dbDao.save(testData)
    }
}

使用SpringTest 整合JUnit

使用SpringTest整个JUnit,也是把Junit的框架整合到Spring容器中,交给spring来托管了,是代码更简洁,同时 SpringTest 也提供了许多组件的支持 比如 JDBC的测试, JNDI的测试,以及很多的Mock方法,足以满足J2EE的单元测试的需要了。

准备Maven的依赖坐标

    编写单元测试 需要 Junit 和SpringTest的jar包依赖,maven构建工具会自行解决依赖关系,所以 SpringTest 依赖的 SpringCore 会被自行导入。

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>${project.dependency.org.junit}</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${project.dependency.spring.core}</version>
    <scope>test</scope>
</dependency>

创建测试类

    与常规的测试类的区别在于,使用了注解RunWith(SpringJUnit4ClassRuner.class)来声明使用Spring的 TestRunner类,同时呢使用ContextConfiguration注解 来声明 需要加载的 配置文件的路劲,这样一来就可以不用自行编码去加载配置文件啦。

    同时我们还可以发现 测试依赖的类 也被打上注解@Autowired 实行自动装填。

   整体的结构很简洁了。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-config-test.xml")
public class TestDemo {
    @Autowired
    private DBDao dbDao;
    private Object[] testData;

    @BeforeClass
    public static void setUpBeforeClass() throws NamingException {}

    @AfterClass
    public static void tearDownAfterClass() {}

    @Before
    public void setUp() {
    //prepare test data here
    testData =  {.........};
    }

    @After
    public void tearDown() {
    }

    @Test
    public void testSave() {
        dbDao.save(testData)
    }
}


SpringFramework4系列之SpringTest:(一)Spring4整合Junit

标签:

原文地址:http://my.oschina.net/u/1041012/blog/477856

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!