男女做暖网站是什么,张家界seo优化首选,软件设计师培训机构,html网页制作下载一、引子
我们在Spring概念中提到#xff1a;Spring的一大优势在于可以集成众多优秀的框架。毫无疑问#xff0c;我首先向读者推荐的就是Junti框架。因为我们在前期的学习中#xff0c;写一些小的demo#xff0c;用Junit来进行小测试是非常合适的。下面让我们来具体看看如…一、引子
我们在Spring概念中提到Spring的一大优势在于可以集成众多优秀的框架。毫无疑问我首先向读者推荐的就是Junti框架。因为我们在前期的学习中写一些小的demo用Junit来进行小测试是非常合适的。下面让我们来具体看看如何集成Junit。
二、Spring集成之前
我们首先来看看在Spring集成Junti框架之前我们是怎么做测试的。
我们当然会引入junti的依赖 dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency
然后创建一个测试类在测试方法上加上Test注解运行这个方法就完成了一个测试。例如我们在Spring注解开发中用到的一个原生Junti的测试类
mport com.bylearning.spring.config.SpringConfiguration;
import com.bylearning.spring.controller.UserController;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;public class IOCByAnnotationTest {Testpublic void test() throws SQLException {
// ApplicationContext ioc new ClassPathXmlApplicationContext(spring-ioc-annotation.xml);ApplicationContext ioc new AnnotationConfigApplicationContext(SpringConfiguration.class);UserController us ioc.getBean(userController, UserController.class);DataSource dataSource (DataSource) ioc.getBean(DataSource.class);Connection connection dataSource.getConnection();System.out.println(connection);us.saveUser();}
}我们可以看到我们需要先根据配置文件或配置类创建出一个IoC容器然后从IoC容器中取我们需要的对象。
有的读者可能会有疑问这不是已经使用了Junit来做测试吗不妨设想如果每个测试方法都需要先创建一个IoC容器然后再用getBean方法去获取我们想要的测试对象这个方法也太不优雅了而且并没有体现出Spring集成这一关键。请读者继续看。
三、Spring集成Junit快速使用
引入spring-test依赖当然junit依赖依然保留
!-- https://mvnrepository.com/artifact/org.springframework/spring-test --dependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion5.3.1/versionscopetest/scope/dependency
在测试类上使用RunWith(SpringJUnit4ClassRunner.class)注解它的作用就是提供一个在JUnit环境下运行Spring测试的环境。
使用ContextConfiguration指定配置文件或配置类。在测试类上使用ContextConfiguration注解它的作用就是加载Spring的配置文件或配置类让Spring的环境能够构建起来。你可以使用ContextConfiguration(classpath:applicationContext.xml)来指定配置文件的路径或者使用ContextConfiguration(classes {AppConfig.class})来指定配置类。
使用Autowired注入需要测试的对象。在测试类中你可以使用Autowired注解来自动注入你需要测试的对象这样你就可以在测试方法中直接使用这个对象了。
于是我可以个性测试类如下
import com.bylearning.spring.config.SpringConfiguration;
import com.bylearning.spring.controller.UserController;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;RunWith(SpringJUnit4ClassRunner.class)
ContextConfiguration(classes {SpringConfiguration.class})
public class SpringTest {Autowiredprivate DataSource dataSource;Testpublic void test() throws SQLException {Connection connection dataSource.getConnection();System.out.println(connection);}
}这样是不是优雅多了呢当然介绍Spring集成Junit只是本篇分享的一小部分目的笔者一贯愿意以最精简的代码实现理想的效果。更重要的是想让读者在继续深入学习Spring之前能更好地体会Spring易于集成其它框架这一优势以及为什么要这么做为什么这是大家通用的做法。只有在对比之间才能看出技术选择的优势。