javaEE基础回顾之单元测试

574 篇文章 4 订阅
单元测试

1、“单元测试”主要是为“集成测试”做准备。

2、单元测试属于测试程序、测试代码、测试代码的逻辑等,属于白盒测试。(功能性测试属于黑盒测试)

3、多数企业中,要求程序员自己进行单元测试。有一些团队可能要求程序员还要编写单元测试报告。
	单元测试报告中会描述什么信息?
		什么时间
		测试的哪个类的哪个方法
		测试该方法的时候实参是什么
		该方法执行结束之后的实际结果是什么
		你的预期结果是什么
		实际结果与预期结果是否一致
		测试是否通过了
		测试没有通过的原因是什么
		怎么解决的等....

4、单元测试是java程序员必须掌握的内容,非常重要,自己对自己编写的业务程序进行测试,是一种负责人的表现。
	自己必须保证自己所编写的程序是有效的。
	
5、在java编程中单元测试有专门的/专业的组件/框架/工具,它的名字叫做:junit,我们这里使用的是junit4版本。(这是一个较高的版本)

6、思考:在没有junit框架之前,我们程序员是怎么进行单元测试的呢?
	编写测试程序,提供一个main方法,new对象,调用方法,传参数,查看返回结果。
	这种方式测试不方便。会编写非常多的main方法。测试类会很多。并且最终不能批量的执行所有的测试程序。
	假设有10个service类,一个service类当中有10个方法,则需要编写100个main方法进行测试。
	可以让100个main方法同时执行吗?不能的。
	100个业务方法对应100个main方法,一个java类中只能写一个main方法。最终是100个类。
	会导致“类爆炸”(类太多了)。
	
7、单元测试主要测试什么?
	不是测试控制器Controller(控制器的执行需要依赖Servlet api,离不开Tomcat这种web服务器,所以控制器不方便进行单元测试。)
	也不是测试DAO(DAO中的每一个方法和事务不关联。没必要测试。)
	单元测试主要测试的service类当中的每一个业务方法。(一个业务方法对应一个功能,对应一个事务!)

8、java中的单元测试主要写什么?

	一个service类对应一个“测试用例”,一个测试用例实际上就是一个专门负责测试的类(专业术语:test case)
	也就是说一个service类对应一个test case。
	
	一个service方法对应一个“测试方法”。10个service方法则必须对应10个“测试方法”。
	
	“测试用例Test Case”当中编写“测试方法”。
	
	service类{
		service方法
	}
	
	test case{
		测试方法
	}
	
	单元测试主要编写的是:
		测试用例 + 测试方法。

9、单元测试的实现步骤:

	第一步:引入junit4的jar包。(java unit : java的单元测试)
		hamcrest-core-1.3.jar
		junit-4.12.jar
		
	第二步:编写测试用例
		* 在项目当中创建一个"Source Folder【专门存储java源文件的目录】",起名:test,和src同级目录。
		* 新建一个软件包,这个包的名字要和被测试的service实现类包名一致。
		* 编写一个“测试用例”类:
			注意:测试用例的类名是被测试的目标类的类名添加Test结尾。
			目标类:MathServiceImpl
			测试用例:MathServiceImplTest
			
	第三步:在测试用例当中编写测试方法
		* 编写测试方法,测试方法必须按照以下格式:
			@Test
			public void testXxx(){
			
			}
			
	第四步:使用断言机制来判断程序是否有效。
	
		* 在测试当中大多数情况下都会使用断言机制。
		
		* 什么是断言机制?Assert.assertEquals(expected, actual);
			程序有一个实际的运行结果:实际值
			程序执行之前测试人员应该有一个预期结果:预期值
			
			实际值和预期值对比,当相同的时候,或者不同的时候,这个过程称为断言机制。
	
	在测试的时候,有的执行结果没有返回值怎么办?或者返回了一个List集合怎么办?或者返回了一个java对象怎么办?
		不是所有的测试都能够使用断言机制,因为不是所有的方法都有返回值的。
		有的时候需要在测试报告中体现出几张图片,是测试的时候截的图。
			
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值