文章来源地址https://uudwc.com/A/qXP3
Junit和Junit.Jupiter.api用法区别写在了文章的总结处,这里先简单的介绍一下Junit用法。
Junit 5 = Junit Platform + Junit Jupiter + Junit Vintage
Junit4中的@Test是import org.junit.Test;
Jupiter中的@Test是import org.junit.jupiter.api.Test;
Junit用法
-
开发步骤
-
①引入spring-test依赖
-
②定义单元测试类
-
-
①引入spring-test依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.8</version>
</dependency>
-
②定义单元测试类写法一
使用xml写配置文件
Junit测试类代码1
//1.加载Spring容器
@ContextConfiguration(locations = "classpath:spring-core.xml")//1.1,根据spring-core.xml加载spring容器
@RunWith(SpringJUnit4ClassRunner.class)//1.2, 由spring容器运行当前的单元测试类
public class Annotation2Test {
@Autowired//2.获取user对象
private User user;
@Test
public void test2() {
System.out.println("user = " + user);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--扫描注解-->
<context:component-scan base-package="com.lzc"></context:component-scan>
<!--加载user.properties-->
<context:property-placeholder location="user.properties"></context:property-placeholder>
</beans>
②定义单元测试类写法二
不使用xml,使用注解编写配置类
Junit测试类代码2
@ContextConfiguration(classes = SpringServiceConfiguration.class)
@RunWith(SpringJUnit4ClassRunner.class)
public class CustomerServiceTest {
@Autowired
private CustomerService customerService;
@Test
public void findAll() throws Exception {
List<Customer> customerList = customerService.findAll();
System.out.println("customerList = " + customerList);
}
/**
* 主配置类
*/
@Configuration
@ComponentScan("com.atguigu")
@Import(SpringDaoConfiguration.class)
public class SpringServiceConfiguration {
}
Junit.Jupiter.api用法
@SpringBootTest
public class EsTest {
@Autowired
private ProductRepository productRepository;
/**
* 创建、更新文档
* 文档ID不存在,则创建文档
* 文档ID存在,则删除原文档,创建新文档
*/
@Test
public void create() {
Product product = new Product("2", "衬衫2", 200.9);
Product save = productRepository.save(product);
System.out.println("save = " + save);
}
/**
* 查询所有
*/
@Test
public void get() {
Iterable<Product> all = productRepository.findAll();
for (Product product : all) {
System.out.println(product);
}
}
/**
* 根据文档ID查询
*/
@Test
public void getById(){
Optional<Product> optional = productRepository.findById("2");
Product product = optional.get(); //获取查询到的文档数据
System.out.println("product = " + product);
}
/**
* 删除文档
* 不论文档ID存在与否,方法都会正常执行结束
*/
@Test
public void deleteById(){
productRepository.deleteById("123");
System.out.println("删除执行完成......");
}
}
Junit和Junit.Jupiter.api用法区别的总结:
我们从上面的代码可以看出,Junit和Junit.Jupiter.api用法区别
在导入@Test的Class时候,我们可以看到Junit和Junit.Jupiter.api两个选项。
Junit4中的@Test是import org.junit.Test;
Jupiter中的@Test是import org.junit.jupiter.api.Test;
在测试类中@Test导入了Junit.Jupiter.api的Class文件后,我们就不需要再加上@RunWith注解了。文章来源:https://uudwc.com/A/qXP3