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));}}