首页 > 其他分享 >Junit单元测试实例

Junit单元测试实例

时间:2024-09-26 15:03:43浏览次数:1  
标签:return string PATTERN 单元测试 strValidation public MAC 实例 Junit

1. 在 IDEA 中打开 File -> New -> Project。

如何创建测试用例的项目

 

 2. 在左侧的菜单栏中选择 Java ,Name 是项目名称,Location 是项目的位置,JDK 根据个人项目的情况选择。

建立项目的详细情况

 

  3. 下载对应的 Mockito 插件,我下载的插件是 Mockito Postfix Completion 。

如何下载Mockito插件

 

4. 配置 Maven 设置

项目的本地Maven设置

 

5. 选中项目的根目录,在 Help 中选择 Find Action,输入 Add framework support 找到对应的指令。

如何把Java项目转为Maven项目

 

 6. 勾选 Maven 选项,点击 OK。(如果项目报错可以尝试重新加载项目)

选择Maven选项

如果项目报错可以选择重新加载项目

 

7. 在 pom 文件中添加 Junit 依赖。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6 
 7     <groupId>groupId</groupId>
 8     <artifactId>JunitTestCase1</artifactId>
 9     <version>1.0-SNAPSHOT</version>
10 
11     <properties>
12         <maven.compiler.source>11</maven.compiler.source>
13         <maven.compiler.target>11</maven.compiler.target>
14         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15     </properties>
16 
17     <dependencies>
18         <!-- 在这里添加项目依赖 -->
19         <dependency>
20             <groupId>junit</groupId>
21             <artifactId>junit</artifactId>
22             <version>4.13.2</version>
23             <scope>test</scope>
24         </dependency>
25         <dependency>
26             <groupId>org.apache.commons</groupId>
27             <artifactId>commons-lang3</artifactId>
28             <version>3.12.0</version> <!-- 确保使用最新版本 -->
29         </dependency>
30     </dependencies>
31 </project>
View Code

 

8. 创建一个Java类,用来检验 IPV4,MAC,Port 的格式,代码如下:

 1 import org.apache.commons.lang3.StringUtils;
 2 
 3 import java.util.regex.Pattern;
 4 
 5 public class StringValidation {
 6 
 7     /**
 8      * IPv4 pattern string.
 9      */
10     private static final String IPV4_PATTERN_STRING = "^(?:(1\\d\\d\\.)|(2[0-4]\\d\\.)|(25[0-5]\\.)|([1-9]\\d\\.)|(\\d\\.)){3}(?:(1\\d\\d)|(2[0-4]\\d)|(25[0-5])|([1-9]\\d)|(\\d))$";
11 
12     /**
13      * MAC pattern string.
14      */
15     private static final String MAC_PATTERN_STRING = "([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}";
16 
17     /**
18      * Port pattern string (0-65535).
19      */
20     private static final String PORT_PATTERN_STRING = "^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$";
21 
22     /**
23      * IPv4 pattern.
24      */
25     private static final Pattern IPV4_PATTERN = Pattern.compile(IPV4_PATTERN_STRING);
26 
27     /**
28      * Mac pattern.
29      */
30     private static final Pattern MAC_PATTERN = Pattern.compile(MAC_PATTERN_STRING);
31 
32     /**
33      *Port pattern.
34      */
35     private static final Pattern PORT_PATTERN = Pattern.compile(PORT_PATTERN_STRING);
36 
37     /**
38      * Determine if the string is IPv4 address.
39      *
40      * @param ip
41      *            IP
42      * @return true if the string is IPv4 address
43      */
44     public boolean isIPv4(String ip) {
45         if (StringUtils.isBlank(ip)) {
46             return false;
47         }
48         return IPV4_PATTERN.matcher(ip).find();
49     }
50 
51     /**
52      * Determine if the string is MAC address.
53      *
54      * @param mac
55      *            MAC address
56      * @return true if the string is MAC address
57      */
58     public boolean isMac(String mac) {
59         if (StringUtils.isBlank(mac)) {
60             return false;
61         }
62         return MAC_PATTERN.matcher(mac).find();
63     }
64 
65     /**
66      * Determine if the string is port.
67      *
68      * @param port
69      *            port
70      * @return true if the string is port
71      */
72     public boolean isPort(String port) {
73         if (StringUtils.isBlank(port)) {
74             return false;
75         }
76         return PORT_PATTERN.matcher(port).find();
77     }
78 }
View Code

 

9. 在对应的 Java 类中点击鼠标右键,点击 Generate...,然后点击 Test... 生成单元测试。

Java Generate 选项生成单元测试

 

10. 因为 Maven pom 文件中导入的依赖是 JUnit4,所以这里选择JUnit4,根据实际的情况勾选以下的复选框,代码如下。

选择正确的JUnit版本

 1 import org.junit.After;
 2 import org.junit.Before;
 3 import org.junit.Test;
 4 
 5 import static org.junit.Assert.*;
 6 
 7 public class StringValidationTest {
 8 
 9     private StringValidation strValidation;
10 
11     @Before
12     public void setUp() {
13         // 在每个测试之前执行:初始化资源
14         strValidation = new StringValidation();
15     }
16 
17     @After
18     public void tearDown() {
19         // 在每个测试结束后执行:释放资源
20         strValidation = null;
21     }
22 
23     @Test
24     public void isIPv4() {
25         assertTrue(strValidation.isIPv4("127.0.0.1"));
26         assertFalse(strValidation.isIPv4("not an ip address"));
27     }
28 
29     @Test
30     public void isMac() {
31         assertTrue(strValidation.isMac("8F:97:F1:41:49:E2"));
32         assertFalse(strValidation.isMac("not a mac address"));
33     }
34 
35     @Test
36     public void isPort() {
37         assertTrue(strValidation.isPort("80"));
38         assertFalse(strValidation.isPort("not a port"));
39     }
40 }
View Code

如果执行的时候报错 "package org.junit does not exist",可以检查 pom 文件中的依赖是否正确,然后 Reload Project,如果仍然报错,可以尝试点击右键 src/test/java 目录并选择 Mark Directory as -> Test Sources Root,确保该目录被标记为测试源代码目录。

设置源代码的目录

 

标签:return,string,PATTERN,单元测试,strValidation,public,MAC,实例,Junit
From: https://www.cnblogs.com/ALittleMoreLove/p/18432883

相关文章

  • 【C++掌中宝】类和对象(一):类的定义和实例化
    文章目录引言1.什么是类?1.1类的定义1.1.1类定义格式1.1.2访问限定符1.1.3类域1.2类在编程中的作用——抽象与封装2.类的基本组成2.1成员变量:类的属性(变量)2.2成员函数:类的行为(函数)2.3完整代码示例3.什么是对象?2.1实例化2.1.1实例化概念2.1.2对象大小(内......
  • RAG、单元测试等一大波新功能,上线JetBrains IDEs的CodeGeeX插件!
    CodeGeeX第三代模型发布后,多项基于第三代模型能力的新功能今天也同步上线JetBrainsIDEs全家桶。用户可以在IDEA、PyCharm等JetBrains系的IDE中,搜索下载CodeGeeXv2.5.0版本,深度使用最新功能。 一、新模型加持的代码补全和智能问答 以IDEA为例,在v2.5.0版本的CodeGeeX插件中,用户可......
  • 828华为云征文|Flexus云服务器X实例实践:部署Alist文件列表程序
    828华为云征文|Flexus云服务器X实例实践:部署Alist文件列表程序引言一、Flexus云服务器X实例介绍1.1Flexus云服务器X实例简介1.2主要使用场景二、购买Flexus云服务器X实例2.1购买规格参考2.2查看Flexus云服务器X实例状态三、远程连接Flexus云服务器X实例3.1重置密码......
  • Android Studio实例:绿豆通讯录
    步骤一:了解项目结构步骤二:首先是继承SQLiteOpenHelper的数据库自定义类创建Java文件MyHelper.javaimportandroid.content.Context;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;publicclassMyHelperextends......
  • 828华为云征文 | 华为云X实例部署Docker应用的性能评测优化与实践指南
    目录1.前言2.测试环境设置2.1硬件与软件配置2.2网络环境与带宽2.3测试应用介绍3.Docker及应用的安装部署步骤3.1安装Docker3.2使用Docker部署Elasticsearch3.3使用Docker部署MySQL3.4使用Docker部署Nginx4.性能测试与评测标准4.1资源占用分析4.2网......
  • TestNG进行单元测试
    1.确定测试目标在白盒测试中,目标是测试代码的内部结构、逻辑路径、分支等。你需要明确哪些类和方法是需要测试的,并决定哪些逻辑路径是关键的。2.编写单元测试单元测试是白盒测试的一种常见形式。在编写TestNG测试时,你可以直接调用方法并检查它们的行为。测试用例应该覆盖代......
  • 实例讲解电动汽车驱动扭矩控制策略及Simulink建模方法
    电动汽车完成上电后进入Ready状态,此时车辆具备行车条件,处于行车准备状态。驾驶员挂挡(D挡或R挡)后,踩油门踏板即可控制车辆开始行车。对于电动汽车来说,驱动行车控制过程一般为,VCU接收Ready状态信号、档位信号、油门信号等表征车辆状态和驾驶员驾驶意图的信号后,根据驾驶员意图进行......
  • 实例讲解电动汽车故障分级处理策略及Simulink建模方法
    电动汽车的故障有很多种,每种故障发生时产生危害性是不同的,因此对于不同故障应采取不同的处理方式。目前一般有两种故障处理方式,一种是针对每一种故障对其故障危害性进行判断,然后针对不同故障设定不同的故障处理机制;另一种是针对危害性相似的故障进行分类分级划分,同一级别故障采......
  • 实例展示Spring的作用以及如何使用
    Spring是一个广泛应用于Java开发的开源框架,它主要有以下几个重要作用:一、依赖注入(DependencyInjection)作用:解耦组件之间的依赖关系,使得代码更易于维护和测试。比如在一个Web应用中,不同的业务逻辑层和数据访问层之间如果直接相互创建对象,会导致代码紧密耦合,一旦其中......
  • 大学生网页制作期末作业——html+css+javascript+jquery旅游官网6页 html大学生网站开
    ......