JavaWeb-1.1【基础加强:Junit单元测试】
1 package com.yubaby.junit; 2 3 /** 4 * 计算器类 5 */ 6 public class Calculator { 7 8 /** 9 * 加法 10 * @param a 11 * @param b 12 * @return 13 */ 14 public int add(int a, int b){ 15 // int i = 3 / 0; //JUnit测试类运行时,控制台变红,说明被测程序有异常 16 17 return a + b; 18 19 // return a - b; 20 } 21 22 /** 23 * 减法 24 * @param a 25 * @param b 26 * @return 27 */ 28 public int sub(int a, int b){ 29 return a - b; 30 } 31 }
1 package com.yubaby.junit; 2 3 /** 4 * 传统手工测试 5 * 弊端是不够灵活 6 */ 7 public class CalculatorTest { 8 public static void main(String[] args) { 9 //创建计算器类对象 10 Calculator c = new Calculator(); 11 12 //调用加减法进行测试 13 int result = c.add(1, 2); 14 System.out.println(result); 15 16 result = c.sub(1, 2); 17 System.out.println(result); 18 } 19 }
1 package com.yubaby.test; 2 3 import com.yubaby.junit.Calculator; 4 import org.junit.After; 5 import org.junit.Assert; 6 import org.junit.Before; 7 import org.junit.Test; 8 9 /* 10 1 Junit单元测试 11 * 测试分类: 12 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 13 2. 白盒测试:需要写代码的。关注程序具体的执行流程。 14 15 * Junit使用:白盒测试 16 * 步骤: 17 1. 定义一个测试类(测试用例) 18 * 建议: 19 * 测试类名:被测试的类名Test CalculatorTest 20 * 包名:xxx.xxx.xx.test cn.itcast.test 21 22 2. 定义测试方法:可以独立运行 23 * 建议: 24 * 方法名:test测试的方法名 testAdd() 25 * 返回值:void 26 * 参数列表:空参 27 28 3. 给方法加@Test 29 4. 导入junit依赖环境 30 31 * 判定结果: 32 * 红色:失败 33 * 绿色:成功 34 * 一般我们会使用断言操作来处理结果 35 * Assert.assertEquals(期望的结果,运算的结果); 36 37 * 补充: 38 * @Before: 39 * 修饰的方法会在测试方法之前被自动执行 40 * @After: 41 * 修饰的方法会在测试方法执行之后自动被执行 42 */ 43 /** 44 * JUnit测试类 45 */ 46 public class CalculatorTest { 47 48 /** 49 * 测试add方法 50 */ 51 @Test //添加该注解后,该测试方法可以独立运行,而不需要main();注解依赖添加方法:左侧红灯泡提示,点击add Junit4 to classpath,弹框点ok 52 public void testAdd(){ 53 // System.out.println("testAdd()被执行了"); 54 55 Calculator c = new Calculator(); 56 System.out.println(c.add(1,2)); //被测程序逻辑错误时,并不能从控制台的红色或绿色来判断被测程序是否有问题,故应使用断言来测试 57 System.out.println(c.sub(1, 2)); 58 59 //Assert类,断言 60 int result = c.add(1,2); 61 Assert.assertEquals(3, result); //断言结果为3,与被测程序输出结果对比 62 //断言:成功不输出,失败输出问题 63 } 64 65 /** 66 * 测试sub方法 67 */ 68 @Test 69 public void testSub(){ 70 System.out.println("testSub()"); 71 72 Calculator c = new Calculator(); 73 Assert.assertEquals(-1, c.sub(1, 2)); 74 } 75 76 /** 77 * 初始化方法 78 * 用于资源申请等,比如重复的IO流创建等 79 * 所有测试方法在执行之前都会自动先执行该方法 80 */ 81 @Before 82 public void init(){ 83 System.out.println("init()"); 84 } 85 86 /** 87 * 释放资源方法 88 * 所有测试方法在执行之后都会自动执行该方法 89 */ 90 @After 91 public void close(){ 92 System.out.println("close()"); 93 } 94 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!