拓展阅读

junit5 系列

基于 junit5 实现 junitperf 源码分析

Auto generate mock data for java test.(便于 Java 测试自动生成对象信息)

Junit performance rely on junit5 and jdk8+.(java 性能测试框架。性能测试。压测。测试报告生成。)

JUnit

JUnit 是一个用于编写可重复测试的简单框架。

它是 xUnit 架构的一种实例,专门用于单元测试框架。

What to test?

Need Desc
Right 结果是否正确
B 边界条件是否满足
I 能反向关联吗
C 有其他手段交叉检查吗
E 是否可以强制异常发生
P 性能问题

maven 入门例子

maven 引入

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>

方法

public class Calculator {
public int add(int a, int b) {
return a + b;
}
}

测试方法

import org.junit.Test;
import static org.junit.Assert.*; public class CalculatorTest { @Test
public void testAdd() {
// Arrange
Calculator calculator = new Calculator(); // Act
int result = calculator.add(3, 7); // Assert
assertEquals(10, result);
}
}

CalculatorTest 类包含了一个测试方法 testAdd,用于测试 Calculator 类的 add 方法。

@Test 注解表示这是一个测试方法。

在测试方法中,我们首先创建了一个 Calculator 对象,然后调用 add 方法进行加法操作。

最后,使用 assertEquals 断言来验证计算的结果是否符合预期值。

运行测试类

在 IDE 中,通常有一个 "Run" 或 "Debug" 按钮,可以直接运行测试类。

也可以通过

mvn test

统一执行测试用例

验证结果

测试运行后,IDE 会显示测试结果。

如果测试通过,你将看到一个绿色的标志;如果测试失败,将会显示红色的标志,并且会提供详细的失败信息。

我们自己的测试例子

  • 我们创建一个用于学生的测试类;
public class StudentTest extends TestCase {
public void testCreate() {
Student student = new Student("Mike");
}
}
  • Student class
public class Student {
private String name; public Student(String name) {
this.name = name;
} public String getName() {
return "ryo";
} public void setName(String name) {
this.name = name;
}
}

当我们运行 StudentTest 时,

接着,我们修改测试代码。

public class StudentTest extends TestCase {
public void testCreate() {
Student student = new Student("Mike");
String name = student.getName(); assertEquals("Mike", name);
}
}

result

Usage

  • Add jars in IDEA
File --> Project Structure  [crtl+alt+shift+s] --> Libraries --> "+"---> "Attach Files or Directories"
  • setUp()

Now we add a new class Course.

public class Course {
private String name;
private int num; public Course(String name, int num) {
this.name = name;
this.num = num;
} public String getName() {
return name;
} public int getNum() {
return num;
}
}

test class like this...

public class CourseTest extends TestCase {
public void testCreateNum() {
Course course = new Course("Math", 1);
assertEquals(1, course.getNum());
} public void testCreateName() {
Course course = new Course("Math", 1);
assertEquals("Helo", course.getName());
}
}
Course course = new Course("Math", 1);

我们已经写了两次,有没有更简单的方法?

现在,我们可以使用 setUp() 来帮助我们更轻松地进行测试;setUp() 中的内容将在每个测试方法执行之前调用。

public class CourseTest extends TestCase {
private Course course;
public void setUp() {
course = new Course("Math", 1);
} public void testCreateNum() {
assertEquals(1, course.getNum());
} public void testCreateName() {
assertEquals("Helo", course.getName());
}
}
  • tearDown()

    此外,tearDown() 将在每个测试方法执行之后调用。

  • @Before

    @Before 注解的方法在每次测试之前执行;同样,@After 在每次测试之后执行。

  • @BeforeClass

    只运行一次,并且是唯一的。

test-01-java 单元测试框架 junit 入门介绍的更多相关文章

  1. Java单元测试框架 JUnit

    Java单元测试框架 JUnit JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于KentBeck的sUnit的xUnit家族中为最成功的一 ...

  2. 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用

    085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...

  3. 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

    084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...

  4. 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法

    083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...

  5. 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法

    082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...

  6. 走进JavaWeb技术世界11:单元测试框架Junit

    JUnit你不知道的那些事儿 转自 老刘 码农翻身 2016-02-24 话说有一次Eric Gamma 坐飞机的时候偶遇Kent Beck(对,就是极限编程和TDD的发起人) ,  两位大牛见面寒暄 ...

  7. JavaScript单元测试框架JsUnit基本介绍和使用

    JavaScript单元测试框架JsUnit基本介绍和使用 XUnit framework XUnit是一套标准化的独立于语言的概念和结构集合,用于编写和运行单元测试(Unit tests). 每一个 ...

  8. 更好的 java 重试框架 sisyphus 入门简介

    What is Sisyphus sisyphus 综合了 spring-retry 和 gauva-retrying 的优势,使用起来也非常灵活. 为什么选择这个名字 我觉得重试做的事情和西西弗斯很 ...

  9. Maven的安装配置及初次创建项目与java单元测试工具JUnit

    Maven  安装     1.把maven安装包解压到某个位置     2.配置M2_HOME环境变量指向这个位置 3.在path环境变量中添加;%M2_HOME%\bin 配置镜像 国内的阿里云镜 ...

  10. Java 微服务框架 Redkale 入门介绍

    Redkale 功能 Redkale虽然只有1.xM大小,但是麻雀虽小五脏俱全.既可作为服务器使用,也可当工具包使用.作为独立的工具包提供以下功能:1.convert包提供JSON的序列化和反序列化功 ...

随机推荐

  1. WPF Prism框架Region失效了?

    站长最近转载了痕迹的Prism 8系列博文,不知道你对该框架是否有一定了解了?不了解,可以看看本号转载的系列: WPF Prism框架合集(2.创建Prism应用程序) WPF Prism框架合集(3 ...

  2. AHB-SRAMC Design-01

    AHB-SRAMC Design 1.AHB-SoC芯片架构图 CPU赋予了SoC的可编程性 SRAM可以存储数据和代码 2.AHB-SRAMC Features 总线版本号 在进行设计的时候可以将地 ...

  3. 码农的转型之路-IoTBrowser(物联网浏览器)雏形上线

    消失了半个月闭门造轮子去了,最近干了几件大事: 1.工控盒子,win10系统长时间跑物联网服务测试.运行快2周了,稳定性效果还满意,除了windows自动更新重启了一次. 2 .接触了一些新概念MQT ...

  4. .NET开源的简单、快速、强大的前后端分离后台权限管理系统

    前言 今天分享一款前端基于Vue3,后端基于.NET8开源的免费(MIT license).简单.快速.强大的前后端分离后台权限管理系统:中台Admin(Admin.Core). 项目官方介绍 中台A ...

  5. [转帖]小米Redis的K8s容器化部署实践

    https://juejin.cn/post/6844904196924276743     背景 Why K8S How K8s Why Proxy Proxy带来的问题 K8s带来的好处 遇到的问 ...

  6. [转帖]如何在KingbaseES数据库查看数据库和表的大小

    关键字 kingbaseES,数据库大小,表大小 1.查看单个数据库的大小 使用ksql连接到数据库,使用sys_database_size函数 kapp=# select sys_database_ ...

  7. [转帖]echo 输出不换行-e \c

    http://www.my889.com/i/1952 在shell中,echo输出会自动换行.有时候在循环中不希望echo输出换行.代码实现如下: 1 echo -e " \c" ...

  8. 【转帖】Alpaca 7B:斯坦福从LLaMA-7B微调的语言模型

    https://www.jianshu.com/p/f8f8f660d2c3 https://crfm.stanford.edu/2023/03/13/alpaca.html https://crfm ...

  9. [转帖]十大主流Nehalem服务器横评(多图)

    https://server.51cto.com/article/201820.html 作者:佚名2010-05-25 09:52:27 运维服务器运维 除了我们的两台基准服务器之外,本次横向评测活 ...

  10. [转帖]在龙芯3A5000上测试SPEC CPU 2006

    https://baijiahao.baidu.com/s?id=1707601012673143593&wfr=spider&for=pc 注:百家号中,一些文本.代码等的排版格式无 ...