springboot2.3+junit5 junit测试编写

怎甘沉沦 提交于 2020-08-06 06:58:26

依赖相关

		<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 用于注册自定义扩展

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!