单元测试实战 - 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= ...
随机推荐
- MySQL 5.7 create VIEW or FUNCTION or PROCEDURE
1.视图 a. CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`localhost` SQL SECURITY INVOKER VIEW `sakila` ...
- Java并发编程:同步容器
Java并发编程:同步容器 为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器.并发容器.阻塞队列.Synchronizer(比如CountDownLatch). ...
- 编程模式之模板方法模式(Template Method)
模板方法模式由两个角色组成:父类角色,子类角色. 父类角色:提供模板. 子类角色:为父类模板提供实现. 类图: JAVA代码: AbstractClass.java package com.templ ...
- C++_系列自学课程_第_6_课_bitset集_《C++ Primer 第四版》
在C语言中要对一个整数的某一个位进行操作需要用到很多的技巧.这种情况在C++里面通过标准库提供的一个抽象数据类型 bitset得到了改善. 一.标准库bitset类型 1.bitset的作用 bits ...
- [moka同学笔记]WINDOWS中cmd的切换目录cd命令失效
症状: 解决办法: 二.解决问题 原因是没有切换盘符步骤一:C:\Users\Administrator>D:步骤二:D:\>
- UDS(ISO14229-2006) 汉译(No.4 术语和缩写)
A_PCI Application layer Protocol Control Information应用层协议控制消息. A_PDU ...
- mybatis中的延迟加载
一.延迟加载 resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. 延迟加载:先 ...
- ABP使用及框架解析系列 - [Unit of Work part.2-框架实现]
前言 ABP ABP是“ASP.NET Boilerplate Project”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开 ...
- SQL切换真假状态标识字段
需求:用一条SQL(SQL SERVER)语句,实现反向更改状态标识字段(类型为bit)的值.即是从true变false,或从false到true. 方案: 一.判断原来这个字段值,然后UPDATE为 ...
- iOS 支付宝的使用
支付宝相关资源下载地址:支付宝开放平台 在移动支付功能处下载. 一.使用官方的Demo 需要配置基本信息: 打开“APViewController.m”文件,对以下三个参数进行编辑. 二.集成支付宝 ...