首页 > 学院 > 开发设计 > 正文

Java从零开始学四十六(Junit)

2019-11-14 23:54:05
字体:
来源:转载
供稿:网友
java从零开始学四十六(Junit)一、软件测试

软件开发:

项目调研--需求分析--软件设计--程序编码--软件测试--运行维护

软件测试:利用测试工具按照测试方案和流程对产品进行功能和性能测试,使用人工或者自动手段来运行或测试某个系统的过程。目的在于检验是否满足规定的需求,确认预期结果与实际结果之间的差别。

墨盒测试-白盒测试-回归测试-单元测试

二、JUnit-单元测试工具

三、测试Junit测试类

创建被测试类
package com.pb.junit;/** *1.创建被测试类 *2.Junit 3.0或者4.0 这里有3.0 *3.创建测试类 *简单实现加,减,乖,除的计算器 */public class Calculator {    //运算结果    PRivate static int result;        //加法    public void add(int n){        result+=n;    }    //减法        public void minus(int n){            result-=n;        }        //乖法        public void mult(int n){            //result*=n;        }        //除法        public void div(int n){            if(n==0){                System.out.println("除数不能为0!");            }else{                result/=n;            }        }        //开方 :死循环        public void sqr(){            for(;;){                            }        }                //平方        public void square(int n){            result=n*n;                    }        //清零运算结果        public void clear(){            result=0;        }                        public  int getResult() {            return result;        }        public  void setResult(int result) {            Calculator.result = result;        }        }
使用JUnit3测试
package com.pb.junit;import junit.framework.Assert;import junit.framework.TestCase;public class CalculatorTest extends TestCase {    //创建测试类对象    Calculator calculator=new Calculator();    //测试启动前运行的方法    protected void setUp() throws Exception {        super.setUp();        calculator.clear();        System.out.println("测试前");    }    //测试结束后运行的方法    protected void tearDown() throws Exception {        super.tearDown();        System.out.println("测试后");    }    //JUnit3中测试方法必须以test开头    public void testAdd() {        calculator.add(2);        calculator.add(3);  //2+3结果为5                int result=calculator.getResult();        Assert.assertEquals(5, result);    }    public void testMinus() {        calculator.minus(1);        calculator.minus(5);//期望结果为-6        int result=calculator.getResult();        Assert.assertEquals(-6, result);    }    public void testMult() {        calculator.mult(3);        calculator.mult(4);        int result=calculator.getResult();        Assert.assertEquals(12, result);    }    public void testDiv() {        calculator.div(8);        calculator.div(0);        int result=calculator.getResult();        Assert.assertEquals(4 ,result);    }    }
使用JUnit4

package com.pb.junit;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 {    Calculator calculator=new Calculator();    @BeforeClass    public static void setUpBeforeClass() throws Exception {        System.out.println("============所有测试之前执行一次");    }    @AfterClass    public static void tearDownAfterClass() throws Exception {        System.out.println("所有测试之后执行一次==========");    }    @Before    public void setUp() throws Exception {        System.out.println("==========每个测试之前执行一次");        calculator.clear();    }    @After    public void tearDown() throws Exception {        System.out.println("每个测试之后执行一次=============");    }    //@Test 是必须的,测试方法可以不用以test开头,必须为public ,没有返回必须为void    @Test    public void testAdd() {        calculator.add(3);        calculator.add(2);        int result = calculator.getResult();        assertEquals(5, result);    }    //忽略这个测试方法    @Ignore    @Test    public void testMinus() {        fail("Not yet implemented");    }            @Test    public void testMult() {        fail("Not yet implemented");    }    //抛出预定义的异常    @Test(expected=ArithmeticException.class)    public void testDiv() throws ArithmeticException {        calculator.add(8);        calculator.div(0);        int result=calculator.getResult();        assertEquals(0, result);    }    @Test(timeout=5000) //超过5秒,算测试失败    public void testSqr() {        calculator.sqr();        fail("Not yet implemented");    }    @Test    public void testSquare() {        fail("Not yet implemented");    }}
测试套件

package com.pb.junit;import org.junit.runner.RunWith;import org.junit.runners.Suite;import org.junit.runners.Suite.SuiteClasses;@RunWith(Suite.class)@SuiteClasses({    //测试用例类的名称    Calculator1Test.class,    Calculator2Test.class,    CalculatorTest.class    })public class TotalTest {        }


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表