对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
for(int b=a+1
if(intArray[a]>intArray[b]){
temp = intArray[a]
intArray[a] = intArray[b]
intArray[b] = temp
}
}
}
for(int i=0
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 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();
}
}
}
}
}