zoukankan      html  css  js  c++  java
  • 单元测试junit框架详解

    首先在给出一个类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 ...");
            
        }
        
    }
    
    
     

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


  • 相关阅读:
    NBUT 1120 Reimu's Teleport (线段树)
    NBUT 1119 Patchouli's Books (STL应用)
    NBUT 1118 Marisa's Affair (排序统计,水)
    NBUT 1117 Kotiya's Incantation(字符输入处理)
    NBUT 1115 Cirno's Trick (水)
    NBUT 1114 Alice's Puppets(排序统计,水)
    188 Best Time to Buy and Sell Stock IV 买卖股票的最佳时机 IV
    187 Repeated DNA Sequences 重复的DNA序列
    179 Largest Number 把数组排成最大的数
    174 Dungeon Game 地下城游戏
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299754.html
Copyright © 2011-2022 走看看