新手入门JUnit单元测试
首先将JUnit插件安装到Eclipse或myeclipse里面,编写完一个模块或者实体类的时候,直接右击,new一个JUnit项目,选择你想测试的实体类(模块),然后会自动生成一个类,这个类,我们将其叫做驱动类,是为了在其中加载测试数据用的(这个类里不再写main方法)。具体操作请参见陈磊兴先生的博客,写的很详细。http://blog.csdn.net/chenleixing/article/details/44259453
下面,我也介绍一个简单的JUnit测试例子,来练练手。
题目:
1) 编写判断三角形类型的类Triangle及方法,编写InvalidTriangleException异常类,为Triangle类编写测试类、简单测试方法、异常测试方法。
需求:实现一个判断三角形类型的方法.
- 输入:三角形的三条边(要求:三个整型数)。
- 输出:三角形的类型(要求:识别等边三角形、等腰三角形、直角三角形和普通三角形)。
- 异常:输入三条边不能构成三角形时,抛出NotTriangleException,该异常类代码如下:
public class TriangleException extends Exception {
public TriangleException() {}
public TriangleException(String message) {
super(message);
}
}
作答代码:已省略导包,异常测试。
public class Triangle {
private double a;
private double b;
private double c;
private String type;
public Triangle(double a, double b, double c) {
super();
this.a = a;
this.b = b;
this.c = c;
}
public boolean IsTriangle(){//判断三角形
if(a+b<=c || a+c<=b || b+c<=a){
return false;
}
else{
return true;
}
}
public String cal_type(){
if(IsTriangle()){
if(a==b && a==c){
type = "等边三角形";
}
else
if(a==b || b==c || a==c){
type = "等腰三角形";
}
else{
type = "普通三角形";
}
//如果能构成直角三角形 覆盖type
if(a*a+b*b==c*c){
type = "直角三角形";
}
return type;
}
else
return "这不是三角形";//可在此抛出异常
}
}
JUnit测试类
public class TriangleTest {
@Test
public void test1() {
Triangle test1 = new Triangle(3,3,3);
String rs = test1.cal_type();
System.out.println(rs);
assertTrue(rs == "等边三角形");
}
@Test
public void test2() {
Triangle test2 = new Triangle(3,7,9);
String rs = test2.cal_type();
System.out.println(rs);
assertTrue(rs == "普通三角形");
}
@Test
public void test3() {
Triangle test3 = new Triangle(1,2,3);
String rs = test3.cal_type();
System.out.println(rs);
assertTrue(rs == "这不是三角形");
}
@Test
public void test4() {
Triangle test4 = new Triangle(3,4,5);
String rs = test4.cal_type();
System.out.println(rs);
assertTrue(rs == "直角三角形");
}
@Test
public void test5() {
Triangle test5 = new Triangle(3,4,3);
String rs = test5.cal_type();
System.out.println(rs);
assertTrue(rs == "等腰三角形");
}
}
运行:
左边是绿色的,表示该测试用例验证成功。
当然,按照以上这种做法,每添加一个测试用例,就得写一个test方法。事实上,我们可以重写JUnit测试驱动类的构造方法(可自动生成),使其为有参构造,我们以集合的方式往驱动类里面传送数组参数,达到减少代码量的目的。
新手入门JUnit单元测试的更多相关文章
- Spring的AOP开发入门,Spring整合Junit单元测试(基于ASpectJ的XML方式)
参考自 https://www.cnblogs.com/ltfxy/p/9882430.html 创建web项目,引入jar包 除了基本的6个Spring开发的jar包外,还要引入aop开发相关的四个 ...
- 十二 Spring的AOP开发入门,整合Junit单元测试(AspectJ的XML方式)
创建web项目,引入jar包 引入Spring配置文件
- IDEA+Maven 整合SSM框架实现简单的增删改查(新手入门,傻瓜操作)
原博客地址:https://blog.csdn.net/khxu666/article/details/79851070 选用SSM框架的原因在目前的企业级Java应用中,Spring框架是必须的.S ...
- 安卓自动化测试(2)Robotium环境搭建与新手入门教程
Robotium环境搭建与新手入门教程 准备工具:Robotium资料下载 知识准备: java基础知识,如基本的数据结构.语法结构.类.继承等 对Android系统较为熟悉,了解四大组件,会编写简单 ...
- Junit单元测试随笔
Junit单元测试随笔 Mooctest 使用心得: Mooctest IDE非常适合新手使用,相比于Eclipse,他免去了配置环境的麻烦.eclipse中 Junit 编写代码经验总结 刚开始写测 ...
- gulp的使用以及Gulp新手入门教程
Gulp新手入门教程 原文 http://w3ctrain.com/2015/12/22/gulp-for-beginners/ Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 搭 ...
- Gulp新手入门教程
Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 搭建web服务器 文件保存时自动重载浏览器 使用预处理器如Sass.LESS 优化资源,比如压缩CSS.JavaScript.压缩图片 ...
- Java反射学习总结终(使用反射和注解模拟JUnit单元测试框架)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 本文是Java反射学习总结系列的最后一篇了,这里贴出之前文章的链接,有兴趣的可以打开看看. ...
- Spring Boot 入门之单元测试篇(五)
博客地址:http://www.moonxy.com 一.前言 JUnit 是一个由 Java 语言编写的开源的回归测试(回归测试是指重复以前全部或部分的相同测试)框架,由Erich Gamma 和 ...
随机推荐
- Java中,异常的处理及抛出
首先我们需要知道什么是异常? 常通常指,你的代码可能在编译时没有错误,可是运行时会出现异常.比如常见的空指针异常.也可能是程序可能出现无法预料的异常,比如你要从一个文件读信息,可这个文件不存在,程序无 ...
- 太多选择——企业如何选择合适的BI工具?
在没认清现状前,企业当然不能一言不合就上BI. BI不同于一般的企业管理软件,不能简单归类为类似用于提高管理的ERP和WMS,或用于提高企业效率的OA.BPM.BI的本质应该是通过展现数据,用于加强企 ...
- Android—应用程序开机自启
android开机时候会发送开机广播,我们想要收到广播知道手机开机,才能启动我们的应用程序. 首先要在配置文件中添加相应权限: <uses-permission android:name=&qu ...
- 发布APP到app store
好久好久没写博客了,主要是 都在学习新东西,忙不赢啊. 近段时间在用AC平台学习开发移动APP, 今天开始发布应用. 在ac云控制台编译成ipa后,使用apple提供的Application Load ...
- 在将 varchar 值 'xinpian' 转换成数据类型 int 时失败?
把int类型的值修改为varchar类型的值
- Struts框架的核心业务
Struts的核心业务 Struts核心业务有很多,这里主要介绍了比较简单一些的: 请求数据的处理,和数据自动封装,类型自动转换 1.Struts中数据处理 1.1.方式1:直接过去servletap ...
- Bellman-Ford 单源最短路径算法
Bellman-Ford 算法是一种用于计算带权有向图中单源最短路径(SSSP:Single-Source Shortest Path)的算法.该算法由 Richard Bellman 和 Leste ...
- 【JavaScript吉光片羽】遭遇IE8
最初对做兼容性的认知只停留在UI层面,但其实UI层面都还好,因为毕竟你可以直接看得见现象,更为重要的是在JavaScript层面,因为这个部分涉及到功能性,前者最多是体验性的问题.下面扯一下这几天遇到 ...
- 高性能的关键:Spring MVC的异步模式
我承认有些标题党了,不过话说这样其实也没错,关于“异步”处理的文章已经不少,代码例子也能找到很多,但我还是打算发表这篇我写了好长一段时间,却一直没发表的文章,以一个更简单的视角,把异步模式讲清楚. 什 ...
- 你可能没注意的CSS单位
扶今追昔 CSS中的单位我们经常用到px.pt.em.百分比,px和pt不用多说 em em是相对单位,参考物是父元素的font-size,具有继承的特点 如果字体大小是16px(浏览器的默认值),那 ...