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

    对于一名测试工程师来说如果不能进行单元测试、接口测试,是非常遗憾的;因为功能测试只能占到测试收益的5%,强化代码能力对于目前的我们来说至关重要,我认为一名测试工程师至少要是一个中级以上的开发工程师,当然我也在努力朝着这个方向迈进,我们共勉;

    第一步:安装eclipse,百度搜索官网直接下载最新版本,此软件为免费开源;

    第二步:创建包cn.junit4创建一个Calculator类,代码如下:

    package cn.junit4;
    
    public class Calculator {
    
        public  int result;
        public  int add(int operand1,int operand2){
            result=operand1+operand2;
            return result;
        }
        public int subtract(int operand1,int operand2){
            return result=operand1-operand2;
        }
        public int multiple(int operand1,int operand2){
            return result=operand1*operand2;
        }
        public int divide(int operand1,int operand2){
            return result=operand1/0;
        }
        public  int getResult(){
            return this.result;
        }
    
    }

    第三步:创建junit test case,代码如下:

    package cn.junit4;
    
    import static org.junit.Assert.*;
    
    import org.junit.After;
    import org.junit.AfterClass;
    import org.junit.Before;
    import org.junit.BeforeClass;
    import org.junit.Ignore;
    import org.junit.Test;
    
    public class CalculatorTest {
        private static Calculator Cal= new Calculator();
    
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
            System.out.println("@BeforeClass");
        }
    
        @AfterClass
        public static void tearDownAfterClass() throws Exception {
            System.out.println("@AfterClass");
        }
    
        @Before
        public void setUp() throws Exception {
            System.out.println("测试开始");
        }
    
        @After
        public void tearDown() throws Exception {
            System.out.println("测试结束");
        }
    
        @Test
        public void testAdd() {
            Cal.add(2,2);
            assertEquals(4, Cal.getResult());
            //fail("Not yet implemented");
        }
        @Test
        public void testSubstract(){
            Cal.subtract(4,2);
            assertEquals(2,Cal.getResult());
        }
        @Ignore
        public void testMultiply(){
            fail("Not yet implemented");
        }
        @Test(timeout=2000)
        public void testDivide(){
            for(;;);
        }
        @Test(expected=ArithmeticException.class)
        public void testDivideByZero(){
            Cal.divide(4,0);
        }
    
    }

    第四步:在同一个包下创建另一个类Calculatortest2,代码如下:

    package cn.junit4;
    
    import org.junit.After;
    import org.junit.AfterClass;
    import org.junit.Before;
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    public class CalculatorTest2 {
    
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
            System.out.println("beforeclass类之前运行");
        }
    
        @AfterClass
        public static void tearDownAfterClass() throws Exception {
            System.out.println("Afterclass类运行结束");
        }
    
        @Before
        public void setUp() throws Exception {
            System.out.println("@before");
        }
    
        @After
        public void tearDown() throws Exception {
            System.out.println("@After");
        }
    
        @Test
        public void test() {
            //fail("Not yet implemented");
            System.out.println("CalculatorTest2测试方法被调用");
        }
    
    }

    第五步:创建junit4 test suite代码如下:

    package cn.junit4;
    
    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    import org.junit.runners.Suite.SuiteClasses;
    
    @RunWith(Suite.class)
    @SuiteClasses({ CalculatorTest.class, CalculatorTest2.class })
    public class AllTests {
    
    }

    第六步:运行junit4 test suite 完成Calculator类中方法的调用与预期一致  timeout=2000 为执行时间不得超过2秒而此方法中为死循环所以执行失败,excepected=ArithmeticException.class表示此方法执行后必须抛出ArithmeticException异常错误,用于验证是否抛出异常错误;AssertEquals()方法断言实际计算结果与预期结果是否一致;@ignore 标示的方法占时不执行;junit4 test suite主要用于让测试工程师实现并发批量执行测试用例;

  • 相关阅读:
    HVIE、HDFS常用操作
    Xshell中使用小键盘问题
    配置SSH免密登录及常见问题
    Linux命令行常用光标控制快捷键
    Linux禁止root用户ssh登录
    sqoop 1.4.7 单机安装
    Hive单机服务的安装配置
    Hadoop 2.9单机安装配置
    CentOS连接wifi
    Servlet
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/6362920.html
Copyright © 2011-2022 走看看