依赖相关
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- Junit 5 -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
junit4
package com.imddysc.taskweb.repository;
import java.util.Optional;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import com.imddysc.taskweb.entity.Task;
@RunWith(SpringRunner.class)
@SpringBootTest
class TaskRepositoryTest2 {
@Autowired
private TaskRepository taskRepository;
@Test
void test() {
Optional<Task> task = taskRepository.findById((long) 1);
System.out.println("Task:: " + task.get());
}
}
junit5(junit jupiter)
package com.imddysc.taskweb.repository;
import static org.junit.jupiter.api.Assertions.fail;
import java.util.Optional;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import com.imddysc.taskweb.entity.Task;
@ExtendWith(SpringExtension.class)
@SpringBootTest
@DisplayName("TaskRepositoryTest")
class TaskRepositoryTest {
@Autowired
private TaskRepository taskRepository;
@Test
@DisplayName("新junit测试1")
void test() {
Optional<Task> task = taskRepository.findById((long) 1);
System.out.println("Task:: " + task.get());
}
}
JUnit 5跟以前的JUnit版本不一样,它由几大不同的模块组成,这些模块分别来自三个不同的子项目。
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
主要注解:
一、 @BeforeAll 类似于JUnit 4的@BeforeClass表示使用了该注解的方法应该在当前类中所有使用了@Test、@RepeatedTest、@ParameterizedTest或者@TestFactory注解的方法之前执行,必须为static
二、 @BeforeEach 类似于JUnit 4的@Before,表示使用了该注解的方法应该在当前类中每一个使用了@Test、@RepeatedTest、@ParameterizedTest或者@TestFactory注解的方法之前执行
三、 @Test 表示该方法是一个测试方法
四、 @DisplayName 为测试类或测试方法声明一个自定义的显示名称
五、 @AfterEach 类似于JUnit 4的@After,表示使用了该注解的方法应该在当前类中每一个使用了@Test、@RepeatedTest、@ParameterizedTest或者@TestFactory注解的方法之后执行
六、 @AfterAll 类似于JUnit 4的@AfterClass,表示使用了该注解的方法应该在当前类中所有使用了@Test、@RepeatedTest、@ParameterizedTest或者@TestFactory注解的方法之后执行,必须为static
七、 @Disable 用于禁用一个测试类或测试方法,类似于JUnit 4的@Ignore
八、 @ExtendWith 用于注册自定义扩展
来源:oschina
链接:https://my.oschina.net/lenglingx/blog/4326787