spring boot Junit单元测试
来源:互联网 发布:淘宝分销平台能挣钱吗 编辑:程序博客网 时间:2024/06/05 23:50
Junit这种老技术,现在又拿出来说,不为别的,某种程度上来说,更是为了要说明它在项目中的重要性。
那么先简单说一下为什么要写测试用例
1. 可以避免测试点的遗漏,为了更好的进行测试,可以提高测试效率
2. 可以自动测试,可以在项目打包前进行测试校验
3. 可以及时发现因为修改代码导致新的问题的出现,并及时解决
那么本文从以下几点来说明怎么使用Junit,Junit4比3要方便很多,细节大家可以自己了解下,主要就是版本4中对方法命名格式不再有要求,不再需要继承TestCase,一切都基于注解实现。
那么Spring Boot如何使用Junit呢?
1). 加入Maven的依赖;
2). 编写测试service;
3). 编写测试类;
引入maven依赖
<
dependency
>
<
groupId
>org.springframework.boot</
groupId
>
<
artifactId
>spring-boot-starter-test</
artifactId
>
<
scope
>test</
scope
>
</
dependency
>
编写测试代码,详细代码如下:
package
com.example.SpringBootJdbcTest;
import
java.util.List;
import
org.junit.Test;
import
org.junit.runner.RunWith;
import
org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.boot.test.SpringApplicationConfiguration;
import
org.springframework.boot.test.context.SpringBootTest;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import
com.example.Application;
import
com.example.domain.User;
import
com.example.repositories.UserRepository;
@RunWith
(SpringJUnit4ClassRunner.
class
)
@SpringBootTest
(classes=Application.
class
)
// 指定spring-boot的启动类
//@SpringApplicationConfiguration(classes = Application.class)// 1.4.0 前版本
public
class
SpringBootJdbcTest {
@Autowired
private
UserRepository userRepository;
@Test
public
void
findAllUsers() {
List<User> users = userRepository.findAll();
System.out.println(users);
}
@Test
public
void
findUserById() {
User user = userRepository.findUserById(
1
);
}
@Test
public
void
updateById() {
User newUser =
new
User(
3
,
"JackChen"
,
"JackChen@qq.com"
);
userRepository.update(newUser);
User newUser2 = userRepository.findUserById(newUser.getId());
}
@Test
public
void
createUser() {
User user =
new
User(
0
,
"tom"
,
"tom@gmail.com"
);
User savedUser = userRepository.create(user);
}
}
编写要测试的类
UserRepository.java
package
com.kfit.service;
import
org.springframework.stereotype.Service;
@Service
publicclass UserRepository {
public
void
findAllUsers()(){
System.out.ptintln(
"0000"
);
}
}
//............其它方法已省略
这时候就可以进行测试了,右键—Run As – Junit Test。
Junit基本注解介绍
//在所有测试方法前执行一次,一般在其中写上整体初始化的代码
@BeforeClass
//在所有测试方法后执行一次,一般在其中写上销毁和释放资源的代码
@AfterClass
//在每个测试方法前执行,一般用来初始化方法(比如我们在测试别的方法时,类中与其他测试方法共享的值已经被改变,为了保证测试结果的有效性,我们会在@Before注解的方法中重置数据)
@Before
//在每个测试方法后执行,在方法执行完成后要做的事情
@After
// 测试方法执行超过1000毫秒后算超时,测试将失败
@Test(timeout = 1000)
// 测试方法期望得到的异常类,如果方法执行没有抛出指定的异常,则测试失败
@Test(expected = Exception.class)
// 执行测试时将忽略掉此方法,如果用于修饰类,则忽略整个类
@Ignore(“not ready yet”)
@Test
@RunWith
在JUnit中有很多个Runner,他们负责调用你的测试代码,每一个Runner都有各自的特殊功能,你要根据需要选择不同的Runner来运行你的测试代码。
如果我们只是简单的做普通Java测试,不涉及Spring Web项目,你可以省略@RunWith注解,这样系统会自动使用默认Runner来运行你的代码。
总结
可以看到,对spring-boot项目进行单元测试是件容易的事儿,需要添加spring-boot-starter-test依赖,然后
使用@RunWith和@SpringBootTest或@SpringApplicationConfiguration(1.4.0过期)注解,然后引入自己要测试的bean,调用指定方法进行测试即可。
- Spring Boot Junit单元测试
- Spring Boot Junit单元测试
- Spring Boot Junit单元测试
- Spring Boot Junit单元测试
- Spring Boot Junit单元测试
- Spring Boot Junit单元测试
- spring boot Junit单元测试
- spring-boot junit 单元测试
- 27. Spring Boot Junit单元测试【从零开始学Spring Boot】
- 27. Spring Boot Junit单元测试【从零开始学Spring Boot】
- (27)Spring Boot Junit单元测试【从零开始学Spring Boot】
- Junit单元测试和spring单元测试
- Junit单元测试和spring单元测试
- Spring Boot学习之旅:(五)Spring Boot 使用 junit 单元测试
- Spring Junit单元测试
- Spring + JUnit进行单元测试
- Struts2+Spring+Junit单元测试
- junit spring 注解 单元测试
- 1.poi 读写excel
- 【牛腩】-总结
- hdu--6127--Hard challenge
- Python切片
- TP5中的第三方类解释
- spring boot Junit单元测试
- 数据结构:哈希表
- AWS
- hive对电商用户订单行为特征分析(二)
- MNIST数字识别
- WiFi、ZigBee、BLE用哪个?小米内部是这样选的
- [MDK]MDK通杀版注册机(更新最新的注册机,支持5.15, 5.16, 5.17,5.18,5.20,5.21, 5.22,5.23,5.24)
- C++ iterator用法
- JVM结构、GC工作机制详解