首先在给出一个类Operator,加入如下代码:

public class Operator {

	// 加法 运算
public int add(int i,int j){
return i+j;
} // 除法 运算
public int divide(int i,int j){
return i/j;
} }

接着建一个类来测试上各类的方法,为了命名规范性,取名为TestOperator。代码如下:

/*
* 注意测试类名的命名方法,一般测试哪个类,就在其前面加上Test。
* 测试类, 去测试 operator这个类 的 方法
*
*
* 关于 junit 测试 框架的使用, 掌握 如下的内容 一般 够你用了 .
*
*/
public class TestOperator {//如果想要测试整个类里面的所有方法,直接点击类名进行测试就会测试这类里面的所有的方法 Operator op;//抽取对象到乘员位置。 // 这里 加了 @BeforeClass 之后, 那么 这个方法 就会 在 类加载的时候 执行
@BeforeClass
public static void beforeClass(){//注意方法命名static System.out.println("before class ..."); } // 这里 加了 @Before 之后, 那么 这个方法 就会 在每个 【测试方法】 执行 之前 执行
@Before
public void before(){//在before里面进行初始化对象
op = new Operator();//如果方法有100多个,每次都new显然很麻烦。因此在这里new出这个对象就可以了,
//在每个 【测试方法】 执行 之前 执行 不必担心对象为空指针。
System.out.println("before...");
    }
    
    //  使用测试框架测试程序的条件 :
    // 第一个:测试 方法 不能 接收 任何的参数, 并且不能有任何的返回值, 必须是void
    // 第二个: 需要在测试方法上加 @Test注解
    
    // 使用 junit 测试框架去 测试运行这个方法
    
    // 测试 的时候, 会看到一个 junit 测试的结果, 如果 测试的结果是绿条, 那么  恭喜你,测试通过 ,
    // 如果是 红条,  则测试不通过
    @Test
    public void testAdd(){
        
        int result = op.add(1, 2);
        
        //System.out.println("结果 :" + result);
        
        // 使用 Assert 断言 类 【来对 结果进行判断】
        
        Assert.assertEquals(3, result);
        
    }
    
    // *android 中 也是  使用 junit 测试 框架 对 代码进行 测试 .  
    // cts(compatibility test suit 兼容性测试单元) 的测试 ---
    @Test(expected=java.lang.ArithmeticException.class)//期望测试的时候是否会抛出一个这样的异常
    public void testDivide(){
        
        int result = op.divide(3, 0);
        Assert.assertEquals(3, result);
    }
    
    // 填入10表示10 毫秒内测试的单元必须运行完毕
    @Test(timeout=1)
    public void testAdd2(){
        
        int result = op.add(1, 2);
    }
    
    // 这里 加了 @After 之后, 那么 这个方法 就会 在每个【 测试方法 执行 之 后】  执行after
    @After
    public void after(){//因此可以在这里面释放对象资源。
        op = null;
        System.out.println("after...");
    }
    
    // 类 资源 释放的时候 调用
    @AfterClass
    public static void afterClass(){
        
        System.out.println("after   class ...");
        
    }
    
}  

掌握以上单元测试的相关概念后,足够应对程序测试了。

单元测试junit框架详解的更多相关文章

  1. Junit使用详解

    http://junit.org/上详细介绍了Junit.JUnit is a simple framework to write repeatable tests. It is an instanc ...

  2. Shiro 安全框架详解二(概念+权限案例实现)

    Shiro 安全框架详解二 总结内容 一.登录认证 二.Shiro 授权 1. 概念 2. 授权流程图 三.基于 ini 的授权认证案例实现 1. 实现原理图 2. 实现代码 2.1 添加 maven ...

  3. Shiro 安全框架详解一(概念+登录案例实现)

    shiro 安全框架详细教程 总结内容 一.RBAC 的概念 二.两种常用的权限管理框架 1. Apache Shiro 2. Spring Security 3. Shiro 和 Spring Se ...

  4. jQuery Validate验证框架详解

    转自:http://www.cnblogs.com/linjiqin/p/3431835.html jQuery校验官网地址:http://bassistance.de/jquery-plugins/ ...

  5. mina框架详解

     转:http://blog.csdn.net/w13770269691/article/details/8614584 mina框架详解 分类: web2013-02-26 17:13 12651人 ...

  6. lombok+slf4j+logback SLF4J和Logback日志框架详解

    maven 包依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...

  7. [Cocoa]深入浅出 Cocoa 之 Core Data(1)- 框架详解

    Core data 是 Cocoa 中处理数据,绑定数据的关键特性,其重要性不言而喻,但也比较复杂.Core Data 相关的类比较多,初学者往往不太容易弄懂.计划用三个教程来讲解这一部分: 框架详解 ...

  8. iOS 开发之照片框架详解(2)

    一. 概况 本文接着 iOS 开发之照片框架详解,侧重介绍在前文中简单介绍过的 PhotoKit 及其与 ALAssetLibrary 的差异,以及如何基于 PhotoKit 与 AlAssetLib ...

  9. Quartz.NET作业调度框架详解

    Quartz.NET作业调度框架详解 http://www.cnblogs.com/lmule/archive/2010/08/28/1811042.html

随机推荐

  1. 吴恩达深度学习第2课第3周编程作业 的坑(Tensorflow+Tutorial)

    可能因为Andrew Ng用的是python3,而我是python2.7的缘故,我发现了坑.如下: 在辅助文件tf_utils.py中的random_mini_batches(X, Y, mini_b ...

  2. Structured Streaming + Kafka 集成中遇到的问题

    官方指导:http://spark.apache.org/docs/2.2.0/structured-streaming-kafka-integration.html 1.版本问题  起初用的kafk ...

  3. seaborn使用(样式管理)

    seaborn使用(样式管理) Seaborn是一个在Python中制作具有吸引力和丰富信息的统计图形的库.它建立在matplotlib之上,并与PyData堆栈紧密集成,包括支持scipy和pand ...

  4. C++雾中风景8:Lambda表达式

    上一篇C++的博客是Long Long ago了,前文讲到在看Lambda表达式的内容.笔者首次接触Lambda表达式应该是学习Python语言的时候,当时也不太明白这种表达方式的精髓,后续接触了Sc ...

  5. Node.js UDP/Datagram

    稳定性: 3 - 稳定 调用 require('dgram') ,可以使用数据报文 sockets(Datagram sockets). 重要提醒: dgram.Socket#bind() 的行为在 ...

  6. ELK学习记录一 :初识ELK

    ELK是elastic公司提供的一套完整的收集日志并分析展示的产品,分别表示Elasticsearch.Logstash和kibana. (官网截个图) 先来一段个人粗浅的认识: Elasticsea ...

  7. CentOS7.2安装Weblogic12c出现的问题

    Weblogic12c安装到步骤:Prerequisite  Checks 时,会进行操作系统版本的校验,即checking  operating  system  certification. 此处 ...

  8. 给定一数组,输出满足2a=b(a,b代表数组中的数)的数对,要求时间复杂度尽量低。

    //时间复杂度O(n),空间复杂度O(n) void findSequence(int* arr, int len) { int* hashtable = new int[RANGE]; memset ...

  9. static 变量(静态变量)

    在C++的面向对象编程中,static还可以加在类的数据成员或成员函数之前.这样定义的数据成员或成员函数就被类所拥有,而不再属于类的对象. #include <iostream> usin ...

  10. Java的多态及注意事项

    什么是多态: 多态不但能够改善代码的组织结构和可读性,还能够创建可扩展的程序.在Java中,所有的方法都是通过动态绑定实现多态的.将一个方法调用同一个方法主体关联起来被称作绑定.动态绑定的含义是在运行 ...