单元测试实战 - Junit测试
一、对加法函数进行测试
1.实例化被测单元(方法):类名 实例名=new 类名([参数])
2.调用被测单元,对比预期值和输出值(实际值);
在没有junit测试工具的情况下,我们要进行如下的测试代码编写过程:
二、利用Junit进行单元测试
Junit是一款专门用于java语言的代码的单元测试工具;是一套基于java的测试框架,目前有两个版本:Junit3,Junit4.Junit中最常用的两个测试方法是:
assertEquals(expect,actual);用于非数组型的数据的比较;
assertArrayEquals(expect,actual);用于数组型的数据的比较;
PS:这两个函数的选择是由被测单元的输出数据类型决定的。
1.Junit 3特征
a.测试类都是要继承TestCase类:
import junit.framework.TestCase
public class TestCalc extends TestCase
b.测试类中的方法的作用是由方法名决定的且测试用例的方法必须以小写的test开头;
如:
2.Junit 4
Junit 3有很大优化,没有Junit3那样的约束条件,使用起来很方便,对于Calc测试如下:
3.对于Java中单元测试来说,被测的方法的类型一般是或者可以转化为以下四种类型:
a.被测方法有返回值,且返回值是可预期的。(按照功能,特定的输入一定对应特定的输出);assertEquals(预期值,输入值);
//上述对于加法函数的测试即属于该类;
b.被测方法有返回值,但是返回值不是固定的,是随机的,但是返回值从数学角度来看,返回值必然是有其特征的;
例:
c.被测方法没有返回值,此时都可以将之转化为输出类型(System.out.println());
例:Dog这样的类是没有返回类型的,通常我们可以将之转化为有输出语句的类型;
d.被测方法本身会抛出异常,此时的测试重点已经是对异常信息的检测。
例:
4.Parameter参数化
一般来说,在自动化测试领域,针对同一单元的测试,往往存在多个测试用例,在代码层面来看,多个测试用例的实现,其特征是:逻辑相同,数据不同。此时就需要用到参数化的操作,一定程度上实现代码和数据的分离,junit自身提供了参数化的方式。
例:
通过参数化进行测试:
5.feeder工具
添加feeder插件,新建data文件夹,右击新建文件,命名为isnumber.csv.(以上面isNumber为例)
单元测试实战 - Junit测试的更多相关文章
- (2).mybatis单元测试(junit测试)
一.Junit使用步骤:1.创建测试目录,(src.测试目录是test)2.在测试目录test中创建与src中相同的包名3.为需要测试的类创建测试类,例如:UsersMapper,测试类是UsersM ...
- DAO层设计Junit测试
DAO层的设计: 在实际的开发中有一种项目的程序组织架构方案叫做MVC模式. MVC模式就是按照程序的功能将它们分成三层,分别是Modle层 (模型层).View(显示层).Controller(控制 ...
- SpringBootTest单元测试实战、SpringBoot测试进阶高级篇之MockMvc讲解
1.@SpringBootTest单元测试实战 简介:讲解SpringBoot的单元测试 1.引入相关依赖 <!--springboot程序测试依赖,如果是自动创建项目默认添加--> &l ...
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_17、SpringBootTest单元测试实战
笔记 1.@SpringBootTest单元测试实战 简介:讲解SpringBoot的单元测试 1.引入相关依赖 <!--springboot程 ...
- Android 单元测试(junit、mockito、robolectric)
1.运用JUnit4 进行单元测试 首先在工程的 src 文件夹内创建 test 和 test/java 文件夹. 打开工程的 build.gradle(Module:app)文件,添加JUnit4依 ...
- Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法
一.单元测试的目的 简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功能,修改bug),都可以做到重新测试的工作.以减少我们在发布的时候出现更过甚至 ...
- Android单元测试与模拟测试详解
测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...
- Android Junit测试框架
对应用进行单元测试: 使用Junit测试框架,是正规Android开发的必用技术.在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性. 1.配置指令集和函数库: (1)配置指令集,指定 ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
随机推荐
- IOS 动画播放案例
#import "ViewController.h" @interface ViewController () @property (weak,nonatomic) IBOutle ...
- nginx concat模块配置 页面返回400 bad request
在1.4.x版本的nginx没有发现这个问题,但是在1.5.x版本就遇到了这个问题 由于Nginx在新版本中,使用了标准的 MIME-Type:application/javascript.而在ngi ...
- java jni c++ 例子
1. java程序 public class TestHello { static { System.loadLibrary("TestHello"); } public stat ...
- spring入门(五)【springMVC环境搭建】
springMVC作为spring的一个WEB组件,是一个MVC的思想,减少了WEB开发的难度,现介绍springMVC环境的搭建,具体的原理放在后面介绍.用过框架的朋友都知道要在WEB项目中使用一个 ...
- 高性能 TCP & UDP 通信框架 HP-Socket v3.2.2 正式发布
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...
- Xdebug文档(五) 代码覆盖分析
代码覆盖分析能在请求时让你知道脚本哪一行(或哪一段)在执行. 相关设置 xdebug.coverage_enable 类型: boolean, 默认值: 1, 始于 Xdebug >= 2.2 ...
- github指令
一般用法 git stash git pull git stash pop 结局冲突 git add . git commit -m "message" git push 查看 g ...
- MFC--响应鼠标和键盘操作
一个程序最重要的部分之一是对鼠标和键盘操作的响应. 一. 理解鼠标事件.之前对鼠标事件的认识仅仅局限于处理控件的单击与双击事件.但实际鼠标的操作包含很多.这里将以一个画图的小程序讲解对鼠标的响应. ...
- Python开发【第一篇】:初识Python
初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...
- atitit.农历的公式与原理以及农历日期运算
atitit.农历的公式与原理以及农历日期运算 1. 农历的概述1 2. 如何在电脑程序里面计算农历??1 3. 农历的公式2 4. 获取当日农历日历3 5. 历史日期公式加查表才能得到精确日期3 6 ...