JUnit注解与hamcrest

端碗吹水

黑盒测试:
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序【学Java,到凯哥学堂kaige123.com】外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。说白了黑盒测试就是不需要知道程序的代码结构,只需要类似于充当用户那样去使用。
所以黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。

白盒测试:
白盒测试[1]  又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。”白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。”白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
采用什么方法对软件进行测试呢用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。
白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:
1.语句覆盖每条语句至少执行一次。
2.判定覆盖每个判定的每个分支至少执行一次。
3.条件覆盖每个判定的每个条件应取到各种可能的值。
4.判定/条件覆盖同时满足判定覆盖条件覆盖。
5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
6.路径覆盖使程序中每一条可能的路径至少执行一次。

由上可知,白盒测试对于测试人员来说技术要求较高,一般只有比较严格的大项目才会使用白盒测试,白盒测试成本也大,所以一般大多数情况下是程序员自己进行简单的白盒测试。

JUnit注解:
我们都知道JUnit4是使用注解的方式来对方法进行测试的,而这些注解都是分开进行测试的,就像线程一样,每在一个方法上添加一个注解,就像是开启一个线程去测试这个方法,所以一个注解一个分支,多个注解多个分支:

image

运行结果:

image

运行结果:

image

运行结果:

image

运行结果:

image

运行结果:

image

运行结果:

image

assertArrayEquals方法:

image

运行结果:

image

这个方法主要是用来比较两个变量是否相同的,同样的可以比较8种基本数据类型的变量和Object数组对象,而且也能在参数中加字符串,以下以int类型和Object数组做一个示例:

image

assertNotEquals方法:

image

运行结果:

image

这个方法是用来判断Object类型的对象是否为不为空的,不为空则没问题,为空则报错,同样的可以在参数里加上一个字符串。
代码示例:

image

assertSame 方法:
此方法用于比两个Object对象的内存地址是否一致,不一致则会报错:

image

hamcrest:
hamcrest包里的方法可以让Assert升级成类似于多路分支的判断语句就像if esle差不多,一般下载JUnit4以上的版本都会自带这个包。

image

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树注解基于注解的单元测试92156 人正在系统学习中

来源:凯哥资料

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年7月6日
下一篇 2017年7月6日

相关推荐