Selenium自行整理【三十九】

7.2、Junit 单元测试框架解析

         相信通过上一节的学习我们已经对 Junit 了初步的认识,起码已经知道了用它写自动化测试用例是什么样子。这一节我们将更详细的学习 Junit 单元测试框架。

         什么是单元测试?单元测试负责对最小的软件设计单元(模块)进行验证,它使用软件设计文档中对模块的描述作为指南,对重要的程序分支进行测试以发现模块中的错误。在 Java 语言下有 Junit 和 TestNG两个单元测试框架,其中 Junit 单元测试框架诞生较早,是 xunit 系列的单元测试框架的始祖,奠定了单元测试框架的思想与模型。

 

7.2.1、认识单元测试

       首先要说明一个问题,不用单元测试框架能写单元测试么?答案是肯定的,单元测试本身就是通过一段代码去验证另一个代码,所以不用单元测试框架也可以写单元测试,下面就看一下不用测试框架的测试。

        首先我们需要建立一个测试类,目前定为Count.Java

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

       程序非常简单,创建一个 Count 类,通过其下面的 add()方法用来计算两个数相加,并返回相加的结果。如果我们不用测试框架,我们会用写一个 main()方法对上面的代码进行验证。全部代码如下。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        首先,引入 Count 类,在 main()方法中调用 Count 类下面的 add()方法并传入两个参数 2、3,add()方法对两个参数做加法运算,并且把计算结果返回给整型变量 z;通过 if 判断 z 是否等于 8,如果相等输出“正确”,否则输出“错误”。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

   不难发现这种手工测试方法存在许多问题

        ●  需要花费很多的时间来写测试代码

        ●  测试代码不可重用,一段测试代码对应一段被测代码。被测代码变,测试代码就没用了

        ●  无法同时运行多个测试代码。假如有一百个被测试代码,要一个一个的运行测试代码,用肉眼观察结果,效率低还容易出错

 

     接下来看看通过 Junit 来写单元测试是什么样子的。

        上面的代码通过 junit 编写测试用例,这里用到了两个知识点,通过@Test 注解 testAdd()方法为一个测试方法;通过 assertEquals()来比较两个数是否相等,这样的写法要比通过 if 语句判断简洁得多。

【执行结果】:

 

7.2.2、错误类型

      查看上一节的执行结果中可以看到,Junit 会有两种错误类型:Errors 和 Failures。那么什么情况下用例会执行 Errors,什么情况又会是执行 Failures。

Errors:表示程序本身错误。

这个错误比较隐蔽,在 Java 中被除数不能为 0,所以 8/0 会有问题,一般会报异常:

       ● Failures: 是指测试失败。

    这个测试用例就比较容易看出哪里有问题了,通过 assertEquals()方法比较的两个数结果不相等。

【执行结果】:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值