JUnit单元测试讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过单元测试检测:
1.函数、过程或完成某一功能的程序块。 2.类的成员函数 3.核心方法及可能引入错误的地方 4.特定的边界条件
5.复杂算法
6.复杂的业务逻辑
7.需求变动频繁之处
认识JUnit
• JUnit是一个帮助开发人员测试Java代码的测试框架 • 是Java的测试标准 • 开源
eclipse下设置JUnit
进入Test
• 现阶段使用Junit主要是为了测试dao层的增删改查等方法是否可以正常执行
第一个测试:
测试JDBC连接数据库
断言:assert
断言:期望值与测试值是否相同
1.assertEquals();8个重载,用于查看对象中存的值是否是期望值,与字符串 比较中的equals()类似。 2.assertFalse()和assertTrue();2个重载,用于测试返回值为boolean类型 3.assertSame()和assertNotSame();2个重载,用于比较两个对象的引用是否 相等和不相等。类似==和!=比较对象。 4.assertNull()和assertNotNull();2个重载,用于查看对象是否为空和不为空 5.fail用于抛出错误,终止测试。
JUnit4.x标签
• JUnit4.x支持注解配置,不需要继承TestCase类。使用注解标 签。导入相应的包即可。
•
• • • • • • • • •
常用标签:
@Test测试方法 @BeforeClass 在测试初始化时执行一次(必须是public和static的) @Before每次执行@Test方法测试前执行(主要用于初始化) @Ignore忽略测试(该测试不执行) @After每次执行@Test方法测试后执行(主要用于清理资源) @AfterClass所有测试结束后执行(必须是public和static的) @Test(timeout = *)显示测试 timeout毫秒数 @Test(expected=*.class)测试异常expected异常类 @SuiteClasses打包测试
• 右击项目-->选择Build Path-->选择configure BulidPath • --->Add Library-->JUnit-->JUnit4-->finish
创建项目下的test
1.在项目下创建一个source folder文件夹。(命名为test) 2.在test中创建与src文件夹相对应的包。(包名相对应) 3.Junit的命名方法:(1)测试类命名 *Test.java (2)测试方法需要满足的条件 : public的 void的 无方法参数的 方法名以test开头 后面加上要测试的方法 <同方法的多个测试方法用数字区分>
JUnit单元测试-基于JUnit4.x
单元测试
• 是在开发过程中要进行的最低级别的测试活动。
• 是需要与开发同步进行的工作。 • 属于编码的一部分。有程序员自己完成。 • 是为了确保类的某一个特定方法能成功执行一系列特定的 任务。每个测试都确保只要给定输入,方法将输出预期的 结果。
单元测试测什么?
编写测试方法前的准备工作
实例化一个UserInfoDaoImpl对象
导包
增删改查之"增"
返回值为空
查询出插入值
断言(获取的值与插入值相同) 测试成功
增删改查之"查"
查找方法 测试查找方法: 必须重新插入值再更改. (测试方法是相对独立的,
不能使用前一个测试的输 入或输出,最好不要存在 耦合) 测试不能在数据库中 存在垃圾数据,需要 清除测试数据
增删改查之"改"
流程: 插入数据->取出数据->验证插入正确-> 修改数据->重新获取数据->断言
增删改查之"删"
流程: 插源自文库->删除->断言
所有的测试结果
JUnit的注意事项
1.JUnit仅仅只是告诉你,你所编写的方法能否执行,而不会 去管其他的约束。 2.JUnit没有报错不能证明你是对的,而只是证明你没有错。
谢谢!
1.函数、过程或完成某一功能的程序块。 2.类的成员函数 3.核心方法及可能引入错误的地方 4.特定的边界条件
5.复杂算法
6.复杂的业务逻辑
7.需求变动频繁之处
认识JUnit
• JUnit是一个帮助开发人员测试Java代码的测试框架 • 是Java的测试标准 • 开源
eclipse下设置JUnit
进入Test
• 现阶段使用Junit主要是为了测试dao层的增删改查等方法是否可以正常执行
第一个测试:
测试JDBC连接数据库
断言:assert
断言:期望值与测试值是否相同
1.assertEquals();8个重载,用于查看对象中存的值是否是期望值,与字符串 比较中的equals()类似。 2.assertFalse()和assertTrue();2个重载,用于测试返回值为boolean类型 3.assertSame()和assertNotSame();2个重载,用于比较两个对象的引用是否 相等和不相等。类似==和!=比较对象。 4.assertNull()和assertNotNull();2个重载,用于查看对象是否为空和不为空 5.fail用于抛出错误,终止测试。
JUnit4.x标签
• JUnit4.x支持注解配置,不需要继承TestCase类。使用注解标 签。导入相应的包即可。
•
• • • • • • • • •
常用标签:
@Test测试方法 @BeforeClass 在测试初始化时执行一次(必须是public和static的) @Before每次执行@Test方法测试前执行(主要用于初始化) @Ignore忽略测试(该测试不执行) @After每次执行@Test方法测试后执行(主要用于清理资源) @AfterClass所有测试结束后执行(必须是public和static的) @Test(timeout = *)显示测试 timeout毫秒数 @Test(expected=*.class)测试异常expected异常类 @SuiteClasses打包测试
• 右击项目-->选择Build Path-->选择configure BulidPath • --->Add Library-->JUnit-->JUnit4-->finish
创建项目下的test
1.在项目下创建一个source folder文件夹。(命名为test) 2.在test中创建与src文件夹相对应的包。(包名相对应) 3.Junit的命名方法:(1)测试类命名 *Test.java (2)测试方法需要满足的条件 : public的 void的 无方法参数的 方法名以test开头 后面加上要测试的方法 <同方法的多个测试方法用数字区分>
JUnit单元测试-基于JUnit4.x
单元测试
• 是在开发过程中要进行的最低级别的测试活动。
• 是需要与开发同步进行的工作。 • 属于编码的一部分。有程序员自己完成。 • 是为了确保类的某一个特定方法能成功执行一系列特定的 任务。每个测试都确保只要给定输入,方法将输出预期的 结果。
单元测试测什么?
编写测试方法前的准备工作
实例化一个UserInfoDaoImpl对象
导包
增删改查之"增"
返回值为空
查询出插入值
断言(获取的值与插入值相同) 测试成功
增删改查之"查"
查找方法 测试查找方法: 必须重新插入值再更改. (测试方法是相对独立的,
不能使用前一个测试的输 入或输出,最好不要存在 耦合) 测试不能在数据库中 存在垃圾数据,需要 清除测试数据
增删改查之"改"
流程: 插入数据->取出数据->验证插入正确-> 修改数据->重新获取数据->断言
增删改查之"删"
流程: 插源自文库->删除->断言
所有的测试结果
JUnit的注意事项
1.JUnit仅仅只是告诉你,你所编写的方法能否执行,而不会 去管其他的约束。 2.JUnit没有报错不能证明你是对的,而只是证明你没有错。
谢谢!