2024年在Maven项目中运行JUnit 5测试用例_maven junit5(2),软件测试开发进大厂面试必备技能

发布于:2024-05-09 ⋅ 阅读:(30) ⋅ 点赞:(0)

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

相比较JUnit 4而言,JUnit 5一个比较大的改变是JUnit 5拥有与JUnit 4不同的全新的API。JUnit 5分成了三部分:

JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

  • JUnit Platform是在JVM上启动测试框架的基础。 它还定义了TestEngine API,用于开发在平台上运行的测试框架。 此外,该JUnit Platform还提供了一个控制台启动器(用于从命令行启动该平台)和一个基于JUnit 4的运行器,用于在基于JUnit 4的环境中在该平台上运行任何TestEngine。 流行的IDE(IntelliJ IDEA,Eclipse,NetBeans和Visual Studio Code等)和构建工具(Gradle,Maven和Ant等)中也存在对JUnit平台的一流支持。
  • JUnit Jupiter是新编程模型和扩展模型的组合,用于在JUnit 5中编写测试和扩展。Jupiter子项目提供了一个TestEngine,用于在平台上运行基于Jupiter的测试。
  • JUnit Vintage提供了一个TestEngine,用于在平台上运行基于JUnit 3和基于JUnit 4的测试。

因此,在Maven中,JUnit 5分模块的,意味着你可以按需引入上面定义的任意模块。这使得引入JUnit 5依赖就有了多个选择。

一般而言,力求省事,就可以通过引入junit-jupiter依赖。junit-jupiter就是常用JUnit 5模块的聚合包。

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>${junit-jupiter.version}</version>
    <scope>test</scope>
</dependency>

编写测试用例

下面是一段简单的Java程序:

/\*\*
 \* Welcome to https://waylau.com
 \*/
package com.waylau.java.demo;

/\*\*
 \* Hello World.
 \* 
 \* @since 1.0.0 2020年4月12日
 \* @author <a href="https://waylau.com">Way Lau</a>
 \*/
public class HelloWorld {

	private String words;

	public HelloWorld(String words) {
		this.words = words;
	}
	
	public String getWords() {
		return words;
	}

}

按照管理,我们会在Maven工程的test目录,创建一个与之对应的单元测试用例:

/\*\*
 \* Welcome to https://waylau.com
 \*/
package com.waylau.java.demo;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

/\*\*
 \* HelloWorld Test.
 \* 
 \* @since 1.0.0 2020年4月12日
 \* @author <a href="https://waylau.com">Way Lau</a>
 \*/
class HelloWorldTests {

	@Test
	void testGetWords() {
		var words = "Hello World";
		var hello = new HelloWorld(words);
		
		assertEquals(words, hello.getWords());
	}
}

上述用例非常简单,就是想测试下,HelloWorld的getWords方法,是否与预期的一致。
这里需要强调的是JUnit 5和JUnit 4的不同点:

  • JUnit 5使用的API是org.junit.jupiter.api.*包下
  • 测试方法(比如上例testGetWords),可以不加public

运行JUnit 5测试用例

上如上文所讲,在大多数主流的IDE中,都提供了对JUnit 5的支持。因此可以选择在IDE中运行,也可以通过Maven执行测试。

在IDE中运行

以Eclipse IDE为例,右键类或者方法,选择“Run As -> JUnit Test”即可。如下图所示。

通过Maven执行测试

在Maven中执行测试用例的命令如下:

mvn test

如果你执行了上述命令,会得到下面的测试结果

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.waylau.java.demo.HelloWorldTests
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec



![img](https://img-blog.csdnimg.cn/img_convert/00850f3c8ca9b75c5363b09a61d63725.png)
![img](https://img-blog.csdnimg.cn/img_convert/e58b2bc2bfcf223591d7d24597d511e6.png)
![img](https://img-blog.csdnimg.cn/img_convert/60e5c66db8865b2cebc067ede85ef419.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**


**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**


网站公告

今日签到

点亮在社区的每一天
去签到