一、JUnit是什么?

JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。JUnit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。JUnit是一套框架,继承TestCase类,就可以用JUnit进行自动测试。

二、单元测试

单元测试是编写测试代码,用以检测特定的、明确的、细颗粒的功能 。应该准确、快速地保证程序基本模块的正确性。严格来说,单元测试只针对功能点进行测试,不包括对业务流程正确性的测试。单元测试不仅仅是要保证代码的正确性,一份好的单元测试报告,还要完整地记录问题的所在和缺陷以及正确的状态,方便后面代码的修复,重构和改进。

三、JUnit框架中的对象类

JUnit有4个重要的类,分别是TestSuite、TestCase、TestResult和TestRunner,另外还包括Test和TestListener接口和Assert类。

(1)Assert类用来验证条件是否成立,当条件成立时,assert方法保持沉默,若条件不成立时就抛出异常。

(2)Test接口用来测试和收集测试的结果,Test接口采用了 Composite设计模式,它是单独的测试用例,聚合的测试模式以及测试扩展的共同接口。

(3) TestCase抽象类用来定义测试中的固定方法, Testcase是Test接口的抽象实现,由于 TestCase是一个抽象类,因此不能被实例化,只能被继承。其构造函数可以根据输入的测试名称来创建一个测试用例,提供测试名的目的在于方便测试失败时查找失败的测试用例。

(4) Test Suite是由几个TestCase或其他的Test Suite构成的。可以很容易构成一个树形测试,每个测试都由持有另外一些测试的Test Suite来构成。被加入到 Test Suite中的测测试在一个线程上依次被执行。

(5) Test Result负责收集TestCase所执行的结果,它将结果分类,分为客户可预测错误和没有预测的错误,它还将测试结果转发到 TestListener处理。(

(6) TestRunner是客户对象调用的起点,它负责对整个测试过程进行跟踪。它能够显示测试结果,并且报告测试的进度。

(7) TestListener包含4个方法: addError(), addFailuer(), startTest()和 endTest()它是对测试结果的处理和对测试驱动过程的工作特征进行提取。

四、JUnit测试技术存在的缺陷

仅支持同步的测试.要懂得java或者C++语言,同时没有办法检查抛出异常的信息。

五、结论

单元测试是非常有必要的,有助于对自己的代码质量以及编码能力,JUnit框架中的对象类来实现这个需求,则简化测试人员的操作便利。

软件测试:第二次作业(JUnit单元测试方法)的更多相关文章

  1. 软件测试第二次作业:初识JUNIT单元测试方法

    软件测试有很多分类,从测试的方法上可分为:黑盒测试.白盒测试.静态测试.动态测试   从软件开发的过程分为:单元测试.集成测试.确认测试.验收.回归等. 在众多的分类中,与开发人员关系最紧密的莫过于单 ...

  2. 熟悉Junit单元测试方法

    定义: JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个. JUnit有它自己 ...

  3. 软件测试第二周作业 WordCount

    本人github地址:  https://github.com/wenthehandsome23 psp阶段 预估耗时 (分钟) 实际耗时 (分钟) 计划 30 10 估计这个任务需要多少时间 20 ...

  4. 软件测试第二次作业——Fault,Failure,Error辨析与设计测试用例

    Fault 静态错误 ,Failure 外部错误 ,Error 内部错误 问题答案 第一题 1.1 当数组x内的元素≥2时,该循环不会检测到x[0]这个元素. 1.2 test: x=[2, 3, 2 ...

  5. spring boot -junit单元测试方法示例

    package com.example.zs; import com.example.zs.mapper.UserMapper; import com.example.zs.pojo.User; im ...

  6. Python模拟wc命令(软件测试第二次作业)

    Python实现字符,单词,行,代码行,空行及可视化 Gitee项目地址:https://gitee.com/biubiubiuLYQ/word_and_character_statistics 一. ...

  7. 23.IDEA 运行junit单元测试方法

    转自:https://blog.csdn.net/weixin_42231507/article/details/80714716 配置Run,增加Junit 最终配置如下:

  8. IDEA 运行junit单元测试方法

    配置Run,增加Junit 最终配置如下:

  9. OO作业第一单元总结

    一.第一单元作业回顾 ​ 系列一作业分为三周进行,都是表达式求导,难度渐进. ​ 第一次实现的是简单幂函数的求导,第二次加入了sin和cos两种三角函数,第三次实现了三角函数内的嵌套以及引入了表达式因 ...

随机推荐

  1. Qt551.窗口滚动条

    1.代码的方式来创建 ScrollArea,然后使用 倒是 正常(有滚动条显示),但是此方式太麻烦 不如直接拖控件来的方便直观快捷. 但是,直接拖控件的方式 ScrollArea中无法显示出 滚动条, ...

  2. vitual dom实现(转)

    1. 通过JavaScript来构建虚拟的DOM树结构,并将其呈现到页面中: 2. 当数据改变,引起DOM树结构发生改变,从而生成一颗新的虚拟DOM树,将其与之前的DOM对比,将变化部分应用到真实的D ...

  3. MySQL 存储过程 if语句

    MySQL  存储过程 if语句 MySQL IF语句允许您根据表达式的某个条件或值结果来执行一组SQL语句. 要在MySQL中形成一个表达式,可以结合文字,变量,运算符,甚至函数来组合.表达式可以返 ...

  4. deep learning的一些知识点

    softmax loss: softmax:     softmax的作用,将fc的输出映射成为(0,1)的概率,并将其差距拉大. cross entropy loss:   y是样本的真实标签,为1 ...

  5. vue-cli卸载旧版,再重新安装后还显示的是旧的版本

    按vue-cli的官方文档中卸载了旧版(2.8.2),然后重装了新版本,之后输入 vue --version还是显示2.8.2,最后发现关闭终端后重新打开终端,再看vue --version显示的是新 ...

  6. 多个vlan之间路由

    通过这节课,我们学习到了如何利用两个交换机,创建多个vlan口,将多台Pc之间互通今天学习到了新的指令:interface vlan-interfacee ?                     ...

  7. 小程序 新建项目底部tabbar

    在app.json中配置 { "pages": [ "pages/index/index", "pages/staging/staging" ...

  8. python学习之读写csv文件(使用pandas)

    简介 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符序 ...

  9. Vue2.0增删改查案例(Vue+Less+LocalStorage)

    本人写的小程序,功能还在完善中,欢迎扫一扫提出宝贵意见!           Vue+Less+LocalStorage 安装Less:npm install less less-loader --s ...

  10. 【问题记录】使用FreeMarker生成数据,模板明明没错却一直报错“The following has evaluated to null or missing:”

    今天使用FreeMarker生成数据时一直报错,错误信息是“The following has evaluated to null or missing:”,告知我找不到值. 但是我再三确认,这些属性 ...