JUnit学习笔记
视频链接 Java教程 - Part-8-JUnit单元测试【完结】
JUnit单元测试
单元测试
什么是单元测试
单元测试是针对最小功能单元编写测试代码
Java程序最小的功能单元是方法
单元测试就是针对单个Java方法的测试
单元测试的好处
确保单个方法运行正常
如果修改了方法,只需确保对应的单元测试通过
测试代码可作为示例代码
自动化运行所有测试并获得报告
JUnit
JUnit是一个开源的Java语言的单元测试框架
专门针对Java语言设计,使用广泛
JUnit是事实上的标准单元测试框架
JUnit特点
使用断言测试期望结果
可以方便的查看测试结果
可以方便的组织和运行测试
常用IDE都集成了JUnit
可以方便的集成到Maven
JUnit的设计
TestCase:一个TestCase表示一个测试
TestSuite:一个TestSuite包含一组TestCase,表示一组测试
TestFixture:一个TestFixture表示一个测试环境
TestResult:用于收集测试结果
TestRunner:用于运行测试
TestListener:用于监听测试过程,手机测试数据
Assert:用于断言测试结果是否正确
同一个单元测试内的对个测试方法
测试前都需要初始化某些对象
测试后可能需要清理资源
JUnit使用Before和After方法
在Before方法中初始化测试资源
在After方法中释放测试资源
可保证单个Test方法执行前会创建新的实例实例变量的状态不会传给下一个Test方法
单个test方法执行前后会执行Before和After方法
Before方法吃石化对象存放在实例字段中
JUnit对于每个Test方法
实例化CalculatorTest
执行Before方法
执行Test方法
执行After方法
BeforeClass和AfterClass静态方法
在执行所有Test方法前执行BeforeClass静态方法
执行所有测试
在执行所有Test方法后执行AfterClass静态方法
BeforeClass静态方法初始化对象只能存放在静态字段中
静态字段的状态会影响到所有Test
初始化测试资源成为Fixture
Before:初始化测试对象
After:销毁Before创建的测试对象
BeforeClass:初始化非常耗时的资源
AfterClass:清理BeforeClass创建的资源
异常测试
对可能抛出的异常进行测试
异常的本身是方法签名的一部分
测试错误的输入是否导致特定的异常
测试异常可以使用Test(expected=Exception.class)
对可能发生的每种类型的异常进行测试
参数化测试
可以吧测试数据组织起来
用不同的测试数据调用相同的测试方法
超时测试
超时设置为1秒:Test(timeout = 1000)
timeout单位是毫秒
超时测试不能取代性能测试和压力测试