java单元测试案列

本文详细探讨了Java单元测试的重要性,通过具体案例介绍了如何使用JUnit进行单元测试的编写,包括测试初始化、断言方法和异常处理等关键步骤,旨在提升代码质量和可维护性。
摘要由CSDN通过智能技术生成
package com.fh.util.junit_test;

public class Calculator {

    public long add(int x,int y) {
    	int result= x+y;
        System.out.println("执行加法");
        return result;
    }

    public long sub(int x,int y) {
    	int result= x-y;
        System.out.println("执行减法");
        return result;
    }
    
    public long mul(int x,int y) {
    	int result= x*y;
        System.out.println("执行乘法");
        return result;
    }
    
    public long div(int x,int y) {
    	
    	int result=0;
    	try{
    		result=x/y;
    	}catch(ArithmeticException e){
    		e.printStackTrace();
    	}catch (Exception e) {
			e.printStackTrace();
		}
        System.out.println("执行除法");
        return result;
    }
}

package com.fh.util.junit_test;

import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Collection;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

/**单元测试案列
 * @author Administrator
 * 1.修改默认的测试运行器为@RunWith(Parameterized.class)
 * 2.声明变量存放预期值和结果集
 * 3.声明一个返回值为Collection的公共静态方法,并使用@Parameters进行修饰
 * 4.为测试类声明一个带有参数的公共构造函数,并在其中为变量声明赋值
 */
@RunWith(Parameterized.class)
public class CalculatorTest {
	
	int expected=0;
	int input1=0;
	int input2=0;

	Calculator calculator;
	
	//@Before初始化方法   对于每一个测试方法都要执行一次
    @Before
    public void setUp() {
        this.calculator = new Calculator();
    }
    
    // @After释放资源  对于每一个测试方法都要执行一次
    @After
    public void tearDown() {
        this.calculator = null;
    }
    
    @Parameters
    public static Collection<Object[]> t(){
    	return Arrays.asList(new Object[][]{
    		{1,1,0},
    		{4,4,0}
    	});
    }
    
    public CalculatorTest(int expected,int input1,int input2){
    	this.expected=expected;
    	this.input1=input1;
    	this.input2=input2;
    }
    
    //@Test(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常 
    @Ignore
    @Test(expected=ArithmeticException.class)
    public void testMul() {
        assertEquals(expected, this.calculator.mul(input1,input2));
    }
    
    //@Test(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常 
    @Test(expected=ArithmeticException.class)
    public void testDiv() {
        assertEquals(expected, this.calculator.div(input1,input2));
    }
    
    @Ignore
    @Test
    public void testAdd() {
        assertEquals(expected, this.calculator.add(input1,input2));
    }
    
    
    /**
     * @Ignore所修饰的方法会被运行器忽略
     *
     */
    @Ignore
    @Test
    public void testSub() {
        assertEquals(0, this.calculator.sub(100,100));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值