1.9 testNG习题练习

138 阅读2分钟

对Mathematics 类进行单元测试

第一步:新建Mathematics类,测试getFactorial、getBubble、binarySearch方法

package com.test.modle;
public class Mathematics {
    /* 阶乘 */
    public int getFactorial(int num){
        int result = 0;
        if(num == 1){
            result = num;
        }else {
            result = getFactorial(num - 1)*num;
        }
        return result;
    }
    /* 由小到大排序 */
    public void getBubble(int[] intArray,int arrayLength){
        int temp = 0;
        arrayLength = intArray.length;
        for (int a=0;a<arrayLength;a++){
            for(int b=a+1;b<arrayLength;b++){
                if(intArray[a]>intArray[b]){
                    temp = intArray[a];
                    intArray[a] = intArray[b];
                    intArray[b] = temp;
                }
            }
        }
        for(int i=0;i<arrayLength;i++){
            System.out.print(intArray[i]+",");
        }
    }
    /* 求一维数组下标 */
    public int binarySearch(int[] intArray,int goal){
        System.out.println("对数组进行排序:");
        this.getBubble(intArray,intArray.length);
        int start = 0;
        int end = intArray.length - 1;
        while(start <= end){
            int mid = (start + end) / 2;
            if(intArray[mid] == goal){
                return  mid;
            }else if(intArray[mid] < goal){
                start = mid + 1;
            }else{
                end = mid - 1;
            }
        }
        return -1;
    }
}

第二步:新建测试类Test_Mathematics如下:

package com.test.test_modle;
import com.test.modle.Mathematics;
import org.testng.Assert;
import java.util.Arrays;
import org.testng.annotations.Test;

public class Test_Mathematics {

    Mathematics mathematics = null;
    int num = 0;
    @Test
    public void test_getFactorial_1(){
        mathematics = new Mathematics();
        num = mathematics.getFactorial(1);
        if(num == 1){
            Assert.assertEquals(num,1);
            System.out.println("test_getFactorial_1用例通过");
        }else{
            System.out.println("test_getFactorial_1用例失败");
        }
    }

    @Test
    public void test_getFactorial_2(){
        mathematics = new Mathematics();
        num = mathematics.getFactorial(5);
        if(num == 120){
            Assert.assertEquals(num,120);
            System.out.println("test_getFactorial_2用例通过");
        }else{
            System.out.println("test_getFactorial_2用例失败");
        }
    }

    @Test
    public void test_getBubble_1(){
        mathematics = new Mathematics();
        int[] test_data = {22,11,44,77,88,1,50,35};
        mathematics.getBubble(test_data,test_data.length);
        int[] test_data_one = {1,11,22,35,44,50,77,88};
        if(test_data.length == test_data_one.length){
            Assert.assertEquals(test_data.length,test_data_one.length);
            System.out.println("长度正常");

            if(Arrays.equals(test_data_one,test_data)){
                Assert.assertEquals(test_data,test_data_one);
                System.out.println("test_getBubble_2用例通过");
            }else{
                System.err.println("test_getBubble_2用例失败");
            }
        }else{
            System.err.println("长度错误");
        }
    }

    @Test
    public void test_binarySearch_1(){
        Mathematics mathematics = new Mathematics();
        int[] testArray = {11,23,45,67,89,4,0,3,7,9};
        int index = 0;
        int n = mathematics.binarySearch(testArray,0);
        System.out.println(n);
        if(index == n){
            Assert.assertEquals(n,index);
            System.out.println("test_binarySearch_1用例通过");
        }else{
            System.err.println("test_binarySearch_1用例失败");
        }
    }

    @Test
    public void test_binarySearch_2(){
        Mathematics mathematics = new Mathematics();
        int[] testArray = {11,23,45,67,89,4,0,3,7,9};
        int index = -1;
        int n = mathematics.binarySearch(testArray,100);
        System.out.println(n);
        if(index == n){
            Assert.assertEquals(n,index);
            System.out.println("test_binarySearch_2用例通过");
        }else{
            System.err.println("test_binarySearch_2用例失败");
        }
    }
}

新建NumData文件,包含NumData类与Number枚举类

例子:测试方法test_getname_1

package com.test.modle;
import org.testng.annotations.Test;

public class NumData {
    public void getNumber(Number number){
        number.ONE.getname();
        switch(number){
            case ONE:{
                System.out.println("1");
                break;
            }
            case TWO:{
                System.out.println("2");
                break;
            }
        }
    }

    @Test
    public void test_getname_1(){
        NumData numData = new NumData();
        if(Number.ONE.name == "1"){
            numData.getNumber(Number.TWO);
            System.out.println("test_getname_1为ONE成功");
        }else{
            System.err.println("test_getname_1为ONE失败");
        }

        if(Number.TWO.name == "2"){
            numData.getNumber(Number.TWO);
            System.out.println("test_getname_1为TWO成功");
        }else{
            System.err.println("test_getname_1为TWO失败");
        }
    }
}
/* enum类的构造函数只能声明为private */
enum Number{
    ONE("1"),
    TWO("2");
    String name;
    private Number(){}
    private Number(String name){
        this.name = name;
    }
    public String getname(){
        System.out.println("姓名"+this.name);
        return "姓名"+this.name;
    }
}

异常单元测试:

第一步:新建异常类

package com.test.exception;

public class MyException extends Exception{
    public String message;
    MyException(){}
    MyException(String message){
         super(message);
    }
}

第二步:新建Car类,run方法为测试函数

package com.test.exception;

public class Car {
    public String name;
    public Car(String name){
        this.name = name;
    }
    public String run(String startplace,String endplace) throws Exception{
        if(startplace == null || startplace.equals("")){
            throw new MyException("没有开始的地方");
        }
        if(endplace == null || endplace.equals("")){
            throw new MyException("没有结束的地方");
        }
        return "成功到达";
    }
}

第三步:新建测试Test_Car类,测试函数

package com.test.test_exception;
import com.test.exception.Car;
import org.testng.Assert;
import org.testng.annotations.Test;

public class Test_Car {
    @Test
    public void test_run_1(){
        Car car = new Car("本茨");
        try {
            car.run("","北京");
        } catch (Exception e) {
            e.printStackTrace();
            try {
                car.run("成都","");
            } catch (Exception ex) {
                ex.printStackTrace();
                try {
                    String info = car.run("成都","北京");
                    if(info.equals("成功到达")){
                        Assert.assertEquals(info,"成功到达");
                        System.out.println("test_run_1通过");
                    }else{
                        System.err.println("test_run_1失败");
                    }
                } catch (Exception exc) {
                    exc.printStackTrace();
                }
            }
        }
    }
}