使用Junit测试时,如果项目用Spring框架的话,配置文件载入什么的很麻烦,而且和数据库的连接经常出错,可以使用spring的注解配置,简化代码,让测试结果更有效。
环境
IDE:idea
JDK:1.8
Junit:4.9
Spring:4.26
maven配置
spring测试相关的
<properties>
<file.encoding>UTF-8</file.encoding>
<spring.version>4.2.6.RELEASE</spring.version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
Junit
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
</dependency>
测试代码
import com.smart.domain.User;
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 org.springframework.transaction.annotation.Transactional;
import static org.junit.Assert.assertEquals;
@Transactional
@RunWith(SpringJUnit4ClassRunner.class)//表示整合JUnit4进行测试
@ContextConfiguration({"classpath:/xxx-context.xml"}) // 启动Spring容器
public class UserServiceTest {
private UserService userService;
@Test
@Transactional
public void getUserByUserName() {
User test = new User();
test.setUserName("admin");
test.setPassword("123456");
User user = userService.getByNameAndPassword(test);
assertEquals("admin", user.getUserName());
userService.loginSuccess(user);
}
@Autowired
public void setUserService(UserService userService) {
this.userService = userService;
}
}