您的位置:首页 > 编程语言 > Java开发

Spring重温(五)— — spring和junit整合

2018-03-21 14:15 267 查看
        Spring和junit整合,没啥难度。无非就是导入架包,然后级本可以进行junit测试了。本着好记忆不如烂笔头的想法也将它记录下来!

架包:

        junit-4.9.jar和spring-test-4.1.6.RELEASE.jar这两个jar包,版本可以自己选择,如果是要使用注解形式,junit版本尽量在4.9以上(记得不是很清楚了)。入门阶段用的jar如下:

        


测试代码:

    提供多种junit的方法。当复习一下junit吧!

    方法一:(注解方式,手动来加载配置文件)
package com.wen.test;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.wen.test4.service.StudentService;

public class SpringTest {

//这里原本是要用ApplicationContext接口的,但是延续上一篇
//文章的bean生命周期的例子。需要手动关闭,所以这里有ClassPathXmlApplicationContext这个类
ClassPathXmlApplicationContext  applicationContext;

@Before
public void setUp(){
//在这里做初始化
applicationContext= new ClassPathXmlApplicationContext("applicationContext-test2.xml");
}

@Test
public void testSpring(){
//接收bean并强转
StudentService studentService=(StudentService) applicationContext.getBean("studentService");
System.out.println("第九步:我们写的业务逻辑    start");
studentService.choiceCurriculum();
System.out.println("第九步:我们写的业务逻辑    end");
}

@After
public void teardown(){
//手动关闭
applicationContext.close();
}

}
       测试结果:



    方法二:(junit的套件来加载)
package com.wen.test;

import javax.annotation.Resource;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.wen.test4.service.StudentService;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationContext-test2.xml"})
public class SpringTest {

//注入
@Resource
StudentService studentService;

@Test
public void test(){
//开始测试
System.out.println("第九步:我们写的业务逻辑    start");
studentService.choiceCurriculum();
System.out.println("第九步:我们写的业务逻辑    end");
}
}
       测试结果:(消息太多,分两次截图)    




        结果都可以,但是相对来说,我们会比较喜欢第二种套件测试吧!

   注意:        第一种方式的弊端:            一:每一次运行都需要初始化一次容器,而且代码都是硬编码,不利于修改

            二:如果有数据库操作,每次都要看一下数据库是否有数据插入成功。按道理在自己写demo是可以的。但是如果数据量一旦起来,想想都觉得可怕。。

        

总结:

        第一种方式相对来说可以当学习用的,但是实践时没有必要了。第二种方式个人比较推荐!但是第二种方式小编没有理解为什么要执行2次BeanPostProcessor接口里的方法!希望有大神帮我解答一下!

        附:

        修改于2018.3.21晚!

        使用了
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationContext-test2.xml"})        这个注解@ContextConfiguration调用的是applicationContext的容器。但是,每次实例化一个bean都有走一次BeanPostProcessor接口的方法。
        程序人生,与君共勉

        
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: