Junit的简单例子

第一步: 被测试类

HelloWorld 类

public class HelloWorld {
	public String Say(){
		return "Hello,World!";
	}

}
Calculator 类
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(b == 0){
			throw new Exception("除数不能为零");
			}
		return a / b;
	}
}
第二步: 测试类

HelloWorldTest

import junit.framework.TestCase;

public class HelloWorldTest extends TestCase {
    public void testSay(){
        HelloWorld hi = new HelloWorld();
        assertEquals("Hello,World!", hi.Say());
    }
}
CalculatorTest

import junit.framework.Assert;
import junit.framework.TestCase;

public class CalculatorTest extends TestCase {
    /** *//**
     * 在Junit3.8中,测试方法满足如下原则
     * 1)public
     * 2)void 
     * 3)无方法参数
     * 4)最重要的方法名称必须以test开头
     */
    private Calculator cal;
    
    //在执行每个test之前,都执行setUp;
    public void setUp(){
         cal = new Calculator();
    }
    
    //在执行每个test之后,都要执行tearDown
    public void tearDown(){
    }

    public void testAdd()
    {
        Calculator cal = new Calculator();
        int result = cal.add(1, 2);
        //断言assert
        Assert.assertEquals(3, result);
    } 
    
    public void testMinus()
    {
        Calculator cal = new Calculator();
        int result = cal.minus(5, 2);
        Assert.assertEquals(3, result);
    }
   
    public void testMultiply()
    {
        Calculator cal = new Calculator();
        int result = cal.multiply(4, 2);
        Assert.assertEquals(8,result);
    }
    
    public void testDivide()
    {
        Calculator cal = new Calculator();
        int result = 0;
        try {
            result = cal.divide(10,5);
        } catch (Exception e) {
            e.printStackTrace();
            //我们期望result = cal.divide(10,5);正常执行;如果进入到catch中说明失败;
            //所以我们加上fail。
            Assert.fail();//如果这行没有执行。说明这部分正确。
        }
        Assert.assertEquals(2,result);
    }
    
    public void testDivide2()
    {
        Throwable tx = null; 
        try 
        {
            // Calculator cal = new Calculator();
            cal.divide(10,0);
            //正常来讲cal.divide(10,0);已经抛出异常,之后的代码不会被执行。
            //我们也期望是这样的。所以说如果下面的Assert.fail();执行了。
            //我的的测试就失败了。
            Assert.fail();//当执行到这里测试失败,后面的代码将不被执行。
        } catch (Exception e) {
            tx = e;
        }
        Assert.assertNotNull(tx);      //断言tx不为空。也就是说肯定有异常。
        Assert.assertEquals(Exception.class,tx.getClass());//断言tx的类型为Exception类型
        Assert.assertEquals("除数不能为零", tx.getMessage());
    }
}

第三步: 添加TestSuite

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(HelloWorldTest.class); //加入你所想测试的测试类 
        return suite;
    }
    public static void main(String[] args){
	TestRunner.run(suite());
    }

}
第三步: 运行单元测试main()方法





  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值