首先将JUnit插件安装到Eclipse或myeclipse里面,编写完一个模块或者实体类的时候,直接右击,new一个JUnit项目,选择你想测试的实体类(模块),然后会自动生成一个类,这个类,我们将其叫做驱动类,是为了在其中加载测试数据用的(这个类里不再写main方法)。具体操作请参见陈磊兴先生的博客,写的很详细。http://blog.csdn.net/chenleixing/article/details/44259453

  下面,我也介绍一个简单的JUnit测试例子,来练练手。

  题目:

  1)    编写判断三角形类型的类Triangle及方法,编写InvalidTriangleException异常类,为Triangle类编写测试类、简单测试方法、异常测试方法

  需求:实现一个判断三角形类型的方法.

  1. 输入:三角形的三条边(要求:三个整型数)。
  2. 输出:三角形的类型(要求:识别等边三角形、等腰三角形、直角三角形和普通三角形)。
  3. 异常:输入三条边不能构成三角形时,抛出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单元测试的更多相关文章

  1. Spring的AOP开发入门,Spring整合Junit单元测试(基于ASpectJ的XML方式)

    参考自 https://www.cnblogs.com/ltfxy/p/9882430.html 创建web项目,引入jar包 除了基本的6个Spring开发的jar包外,还要引入aop开发相关的四个 ...

  2. 十二 Spring的AOP开发入门,整合Junit单元测试(AspectJ的XML方式)

    创建web项目,引入jar包 引入Spring配置文件

  3. IDEA+Maven 整合SSM框架实现简单的增删改查(新手入门,傻瓜操作)

    原博客地址:https://blog.csdn.net/khxu666/article/details/79851070 选用SSM框架的原因在目前的企业级Java应用中,Spring框架是必须的.S ...

  4. 安卓自动化测试(2)Robotium环境搭建与新手入门教程

    Robotium环境搭建与新手入门教程 准备工具:Robotium资料下载 知识准备: java基础知识,如基本的数据结构.语法结构.类.继承等 对Android系统较为熟悉,了解四大组件,会编写简单 ...

  5. Junit单元测试随笔

    Junit单元测试随笔 Mooctest 使用心得: Mooctest IDE非常适合新手使用,相比于Eclipse,他免去了配置环境的麻烦.eclipse中 Junit 编写代码经验总结 刚开始写测 ...

  6. gulp的使用以及Gulp新手入门教程

    Gulp新手入门教程 原文  http://w3ctrain.com/2015/12/22/gulp-for-beginners/ Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 搭 ...

  7. Gulp新手入门教程

    Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 搭建web服务器 文件保存时自动重载浏览器 使用预处理器如Sass.LESS 优化资源,比如压缩CSS.JavaScript.压缩图片 ...

  8. Java反射学习总结终(使用反射和注解模拟JUnit单元测试框架)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 本文是Java反射学习总结系列的最后一篇了,这里贴出之前文章的链接,有兴趣的可以打开看看. ...

  9. Spring Boot 入门之单元测试篇(五)

    博客地址:http://www.moonxy.com 一.前言 JUnit 是一个由 Java 语言编写的开源的回归测试(回归测试是指重复以前全部或部分的相同测试)框架,由Erich Gamma 和 ...

随机推荐

  1. JavaWeb——Listener

    一.基本概念 JavaWeb里面的listener是通过观察者设计模式进行实现的.对于观察者模式,这里不做过多介绍,大概讲一下什么意思. 观察者模式又叫发布订阅模式或者监听器模式.在该模式中有两个角色 ...

  2. ASP.NET中常用的优化性能的方法

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...

  3. 来自于微信小程序的一封简讯

    9月21晚间,微信向部分公众号发出公众平台-微信应用号(小程序)的内测邀请,向来较为低调的微信在这一晚没人再忽视它了. 来自个人博客:Damonare的个人博客 一夜之间火了的微信应用号你真的知道吗? ...

  4. Java获取本机的IP与MAC地址

    有些机器有许多虚拟的网卡,获取IP地址时会出现一些意外,所以需要一些验证: // 获取mac地址 public static String getMacAddress() { try { Enumer ...

  5. 用C++实现Linux中shell的ls功能

    实现输出当前目录下的文件名 ls功能: 方法一: #include <iostream> #include <algorithm> #include <stdio.h&g ...

  6. Selenium的PO模式(Page Object Model)[python版]

     Page Object Model 简称POM  普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driv ...

  7. Yeoman 学习笔记

    yoeman 简介:http://www.infoq.com/cn/news/2012/09/yeoman yeoman 官网: http://yeoman.io/ yeoman 是快速创建骨架应用程 ...

  8. ASP.NET Web API 管道模型

    ASP.NET Web API 管道模型 前言 ASP.NET Web API是一个独立的框架,也有着自己的一套消息处理管道,不管是在WebHost宿主环境还是在SelfHost宿主环境请求和响应都是 ...

  9. a different object with the same identifier value was already associated with the session:

    hibernate操作: 实例化两个model类,更新时会提示  a different object with the same identifier value was already assoc ...

  10. 【.NET深呼吸】基础:自定义类型转换

    照例,老周在开始吹牛之前,先讲讲小故事,这是朋友提出的建议,老TMD写技术有什么了不起的,人人都会写.后来老周想想,也确实,代码谁不会写,能写到有品位有感悟,就不容易做到.于是,老周接受了该朋友的建议 ...