Java单元测试

3 篇文章 0 订阅

Java单元测试


这篇笔记是看B站视频总结的,视频地址:
Junit单元测试

1.Junit概述

单元测试是针对单个Java方法的写的测试,测试的功能:
测试驱动开发

如果在main方法中进行测试:
main方法测试

仅使用main方法进行测试,就存在以下缺点:

  1. 只能有一个main方法,不能把测试代码进行分离;
  2. 没有打印出测试结果和期望结果。

单元测试好处:

  1. 确保单个方法正常运行;
  2. 如果修改了方法代码,只需确保其对应的单元测试通过;
  3. 测试代码本身就可以作为示例代码;
  4. 可以自动化运行所有的测试并获得分析报告。

Junit是面向Java程序的单元测试框架,存在以下特点:

  1. 使用断言(Assert)测试期望结果;
  2. 可以方便地组织和运行测试;
  3. 可以方便地查看测试结果;
  4. 常用的IDE都集成了Junit;
  5. 可以方便地集成到Maven。

Junit的设计:
TsetCase:一个TestCase表示一个测试;
TestSuite:一个TestSuite包含一组TestCase,表示一组测试;
TestFixture:一个TestFixture表示一组测试环境;
TestResult:用于收集测试结果;
TestRunner:用于运行测试;
TestListener:用于监听测试过程,收集测试数据;
Assert:用于断言测试结果是否正确。

一般情况下src用于存放方法文件,test目录用于存放测试文件。
添加单元测试步骤:

  1. 选中工程的根目录,右键-New-Source Folder,Folder name填写test,即建好存放test的文件夹;
  2. 选中需要进行单元测试的java文件,右键-New-Junit TestCase,选中界面中的New Junit 4 test,然后将Source folder选择为刚刚创建好的test文件夹,然后点击Next,选择需要进行测试的方法,点击Finish,然后在跳出的弹框中点击OK。
  3. 在生成的测试框架中书写assert对方法进行测试。

常用的Assert断言:
断言相等:assertEquals(100,x);
断言数组相等:aeertArrayEquals({1, 2, 3}, x);
浮点数断言相等:assertEquals(3.1416, x, 0.0001);
断言为null:assertNull(x);
断言为true/false:assertTrue(x>0) assertFalse(x<0);
其他:aeertNotEquals()/assertNotNull。

2.Junit 使用

2.1. Before和After的使用

Before和After

在这里插入图片描述

使用Before和After可以保证:
单个@test方法执行前会创建新的XxxTest实例,实例变量的状态不会传递给下一个@test方法;
单个@test方法执行前后会执行@Before和@After方法。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2 异常测试
使用try-catch测试异常:

@Test
public void testNumberFormatException(){
	try{
		Interger.parseInt(null);
		fail("Should Throw Exception!")}catch(NumberFormatException e){
		//ok
	}
}

使用expected测试异常(推荐):

@Test(expected = NumberFormatException,class)
public void testNumberFormatException(){
	Interger.parseInt(null);
}

2.3 参数化测试
在这里插入图片描述

2.4 超时测试
在这里插入图片描述

  • 7
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值