测试所需要的类:
public interface AccountService {
void saveAccount();
}
public class AccountServiceImpl implements AccountService {
@Override
public void saveAccount() {
System.out.println("调用了 AccountServiceImpl 的 save 方法");
}
}
导入 junit
和 spring-test
的依赖
<!-- 使用 Spring 5.x 版本的时候,要求 Junit 的 jar 必须是 4.12 及以上 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
导入 junit
提供的一个注解把原有的 main
方法替换了
使用 @Runwith(SpringJUnit4ClassRunner.class)
告知 Spring
的运行器;Spring
的 IOC
创建是基于 XML
还是注解,并说明位置
情况一:Spring
的 IOC
创建基于 XML
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--将 accoutnService 放入容器中-->
<bean id="accountService" class="com.service.impl.AccountServiceImpl"></bean>
</beans>
import com.service.AccountService;
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;
@RunWith(SpringJUnit4ClassRunner.class)
// 使用 XML 的情况,classpath关键字表示在类路径下
@ContextConfiguration(locations = "classpath:application.xml")
public class ApplicationTest {
@Autowired
private AccountService accountService;
@Test
public void fun1(){
accountService.saveAccount();
}
}
情况二:Spring
的 IOC
创建基于 注解
// 这是一个配置类
@Configuration
public class ApplicationConfig {
@Bean
public AccountService accountService(){
return new AccountServiceImpl();
}
}
@RunWith(SpringJUnit4ClassRunner.class)
// classes:配置类的字节码文件
@ContextConfiguration(classes = ApplicationConfig.class)
public class ApplicationTest {
@Autowired
private AccountService accountService;
@Test
public void fun1(){
accountService.saveAccount();
}
}
有问题可加QQ群一起交流:1076386005