• 单元测试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 ...");
            
        }
        
    }
    
    
     

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


  • 相关阅读:
    linux下修改Mysql的字符编码方式
    创建XMPP工程步骤
    ClickOnce清单签名取消后依然读取证书的问题
    FxCop卸载后依然生成文件夹的问题
    使用了旧版nuget的.net项目在git中的问题
    CorelDraw X8 破解激活问题
    ASUS T100TA 换屏要记
    百度SMS SDK for .Net
    网易闪电邮
    《The Practice and Theory of Bolshevism》的笔记-第114页
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299754.html
Copyright © 2020-2023  润新知