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主要用于让测试工程师实现并发批量执行测试用例;

  • 相关阅读:
    61. 最长不含重复字符的子字符串
    60. 礼物的最大价值 (未理解)
    59. 把数字翻译成字符串
    58. 把数组排成最小的数
    57. 数字序列中某一位的数字 (不懂)
    spring data jpa 官方文档
    idea 编译报错 源发行版 1.8 需要目标发行版 1.8
    idea maven 依赖报错 invalid classes root
    solr
    spring boot 官方文档
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/6362920.html
Copyright © 2011-2022 走看看