zoukankan      html  css  js  c++  java
  • 二、Junit里的方法与注释

    一、方法

    1.setUpBeforeClass方法,在所有方法执行前执行

    2.tearDownAfterClass方法,在所有方法执行后执行

    3.setUp方法,在测试方法调用前执行

    4.这是tearDown方法,在测试方法调用后执行

    package com.myz.util;
    
    
    import org.junit.After;
    import org.junit.AfterClass;
    import org.junit.Before;
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    /*
     * 1.@BeforeClass修饰的方法会在所有方法被调用前被执行,
     *         而且该方法是静态的,所以当测试类被加载后接着就会运行它,
     *         而且在内存中它只会存在一份实例,它比较适合加载配置文件
     * 2.@AfterClass修饰的方法会在所有方法被调用后被执行,
     *         通常用来对资源的清理,比如关闭数据库的连接
     * 3.@Before和@After会在每个测试方法的前后各执行一次
     */
    
    public class JunitFlowTest {
    
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
            System.out.println("这是setUpBeforeClass方法,在所有方法执行前执行");
        }
    
        @AfterClass
        public static void tearDownAfterClass() throws Exception {
            System.out.println("这是tearDownAfterClass方法,在所有方法执行后执行");
        }
    
        @Before
        public void setUp() throws Exception {
            System.out.println("这是setUp方法,在测试方法调用前执行");
        }
    
        @After
        public void tearDown() throws Exception {
            System.out.println("这是tearDown方法,在测试方法调用后执行");
        }
        
        @Test
        public void Test1(){
            System.out.println("我是一个测试方法1111");
        }
        
        @Test
        public void Test2(){
            System.out.println("我是一个测试方法2222");
        }
    }

    5.执行结果

    这是setUpBeforeClass方法,在所有方法执行前执行
    这是setUp方法,在测试方法调用前执行
    我是一个测试方法1111
    这是tearDown方法,在测试方法调用后执行
    这是setUp方法,在测试方法调用前执行
    我是一个测试方法2222
    这是tearDown方法,在测试方法调用后执行
    这是tearDownAfterClass方法,在所有方法执行后执行

    二、注释

    package com.myz.util;
    
    import static org.junit.Assert.assertEquals;
    
    import org.junit.Ignore;
    import org.junit.Test;
    
    /**
     * 
     * @author MYZ
     *@Test():将一个普通的方法修饰成一个测试方法
     *    1.@Test(expected=xx.class)声明可能会遇到的异常,遇到声明的异常时不报错
     *    2.@Test(timeout=xx ms)当函数执行时间小于此时间判定为测试成功,否则判为测试Erro并停止此函数的运行
     *@Ignore: 所修饰的方法将会被测试运行器忽略
     *@RunWith:可以更改测试运行器,一般我们不更改,自定义的测试运行器需要继承org.junit.runner.Runner
     */
    
    public class AnotationTest {
        
        @Test
        public void testDivide(){
            //测试失败erro,由于除数为0引发异常
            assertEquals(6, new Calculate().divide(6, 0));
        }
        
        @Test(expected=ArithmeticException.class)
        public void testDivide2(){
            //测试成功,我们已经预料到了会有算数异常
            assertEquals(6, new Calculate().divide(6, 0));
        }
        
        @Test(timeout=1000)
        public void testTimeOut(){
            while(true){
                //测试erro,因为函数实际执行时间超过1s,但是在第1s的时候, 这个函数就会停止执行了
                System.out.println("Hello World");
            }
        }
        
        @Test(timeout=1000)
        public void testTimeOut2(){
            //测试成功,因为函数实际执行时间小于1s
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        @Ignore
        @Test
        public void testIgnore(){
            //整个类测试的时候,这个函数会被忽略执行
            System.out.println("I am testIgnore method...");
        }
        
        
    }
  • 相关阅读:
    SpringBoot启动方式
    自制反汇编逆向分析工具
    libdispatch.dylib中dispatch_group的实现
    深入ObjC GCD中的dispatch group工作原理。
    objc反汇编分析,手工逆向libsystem_blocks.dylib
    UML分析AsyncDisplayKit框架-ASMuplexImageNode异步下载时序图。
    objc反汇编分析,block函数块为何物?
    apple平台下的objc的GCD,多线程编程就是优雅自然。
    AsyncDisplayKit编译和使用注意事项
    反汇编objc分析__block
  • 原文地址:https://www.cnblogs.com/myz666/p/8463612.html
Copyright © 2011-2022 走看看