Junit3.8入门

1 建议采用的文件组织结构(testeclipse下属于source folder而不是folder)

       Eclipse下浏览:src----com.test.junit3.Calculator

                 test----com.test.junit3.CalculatorTest

       资源管理器下浏览:                 

2:一个简单的junit测试实例:

待测试类:

package com.test.junit3;

/**

 * 数学计算

 */

public class Calculator {

                                     public int add(int a, int b){

                                                                           return a + b;

                                     }

                                     public int minus(int a, int b){

                                                                           return a - b;

                                     }

                                     public int multiply(int a, int b){

                                                                           return a * b;

                                     }

                                     public int divide(int a, int b){

                                                                           return a/b;

                                     }

}

 

测试类:

package com.test.junit3;

import junit.framework.Assert;

import junit.framework.TestCase;

/**

 *junit3.8中测试类必须要继承TestCase父类

 *

 *单元测试不是证明您是对的,而是证明您没有错误

 */

public class CalculatorTest extends TestCase{

                   /**

                    * junit3.8中,测试方法满足如下原则

                    * 1 public

                    * 2 void

                    * 3 无方法参数

                    * 4 方法名称必须以test开头

                    * 5 建议方法名用test+待测试的方法名

                    */

                   public void testAdd(){

                                     Calculator cal = new Calculator();

                                     int result = cal.add(1, 2);

                                     //断言

                                     Assert.assertEquals(3,result);

                   }

}

3junit中对异常的测试实例:

待测试类:

package com.test.junit3;

public class Calculator {

         public int divide(int a, int b) throws Exception{

                   if(0 == b){

                            throw  new Exception("除数不能为零!");

                   }

                   return a/b;

         }

}

 

测试类:

package com.test.junit3;

import junit.framework.Assert;

import junit.framework.TestCase;

public class CalculatorTest extends TestCase{

         public void testDivide(){

                   Calculator cal = new Calculator();

                   int result = 0;

                   try {

                            result = cal.divide(6, 4);

                   } catch (Exception e) {

                            e.printStackTrace();

                            Assert.fail();

                   }

                   //断言

                   Assert.assertEquals(1, result);

         }

        

         public void testDivide2(){

                   Throwable t = null;

                   Calculator cal = new Calculator();

                   try {

                            cal.divide(4, 0); //期望抛出异常

                            Assert.fail(); //断言失败,如果执行此句则断言失败

                   } catch (Exception e) {

                            t = e;

                   }

                   Assert.assertNotNull(t);  //断言抛出了异常

                   Assert.assertEquals(Exception.class, t.getClass()); //断言抛出的异常的类型

                   Assert.assertEquals("除数不能为零!", t.getMessage());  //断言异常的信息

         }

}

4setUp()tear()方法的使用

待测试类:

package com.test.junit3;

public class Calculator {

         public int add(int a, int b){

                   return a + b;

         }

         public int minus(int a, int b){

                   return a - b;

         }

         public int multiply(int a, int b){

                   return a * b;

         }

         public int divide(int a, int b) throws Exception{

                   if(0 == b){

                            throw  new Exception("除数不能为零!");

                   }

                   return a/b;

         }

         public static void main(String[] args){//在命令行方法下使用junit

                   junit.textui.TestRunner.run(CalculatorTest.class);

                   junit.swingui.TestRunner.run(Calculator.class);

                   junit.awtui.TestRunner.run(Calculator.class);

         }

}

测试类:

package com.test.junit3;

import junit.framework.Assert;

import junit.framework.TestCase;

public class CalculatorTest extends TestCase{

         /**

          * setUp在每个测试方法执行之前都要执行一次

          * tearDown是在每个测试方法执行之后都要执行一次

          * 所有的测试方法执行之前,执行某个方法,且只执行一次,这样的方法在3.8中不存在

          * 在所有的测试方法执行之后执行某个方法,且只执行一次,这样的方法在3.8中也不存在

          */

         private Calculator cal;

        

         //初始化方法

         protected void setUp() {//每进一个test方法时,先执行此方法

                   System.out.println("****************setup");

                   cal = new Calculator();//每一个test方法里面的cal对象都是不同的

         }

        

         //销毁方法

         protected void tearDown(){

                   System.out.println("****************tearDown");

         }

        

         public void testAdd(){

                   int result = cal.add(1, 2);

                   Assert.assertEquals(3,result);

         }

        

         public void testMinus(){

                   int result = cal.minus(1,2);

                   Assert.assertEquals(-1, result);

         }

        

         public void testMultiply(){

                   int result = cal.multiply(2, 3);

                   Assert.assertEquals(6, result);

         }

        

         public void testDivide(){

                   int result = 0;

                   try {

                            result = cal.divide(6, 4);

                   } catch (Exception e) {

                            e.printStackTrace();

                            Assert.fail();

                   }

                   Assert.assertEquals(1, result);

         }

        

         public void testDivide2(){

                   Throwable t = null;

                   try {

                            cal.divide(4, 0); //期望抛出异常

                            Assert.fail(); //断言失败,如果执行此句则断言失败

                   } catch (Exception e) {

                            t = e;

                   }

                   Assert.assertNotNull(t);  //断言抛出了异常

                   Assert.assertEquals(Exception.class, t.getClass()); //断言抛出的异常的类型

                   Assert.assertEquals("除数不能为零!", t.getMessage());  //断言异常的信息

         }

}

 

5suite()方法的使用(同时执行多个单元测试)

package com.test.junit3;

 

import junit.framework.Test;

import junit.framework.TestCase;

import junit.framework.TestSuite;

 

public class TestAll extends TestCase {

         public static Test suite(){

                   TestSuite suite = new TestSuite();

                   suite.addTestSuite(CalculatorTest.class);

                   suite.addTestSuite(LargestTest.class);

                   return suite;

         }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值