我的JUnit小试

软件测试JUnit测试套件小试-三角形类型判断

1、创建测试函数

为了简便,没有写成面向对象,只是在类中提供静态函数接受三边的参数

package com.neo.service;
public class getTypeResult {
    /**
     * 判断三角形类型
     * @param tri
     * @return String 三角形类型
     */
    public static String getType(int []sides){

        StringBuilder type = new StringBuilder();
        if( !isLegal(sides) )
            return "输入越界";
        if( !canMakeUpTriangle(sides))
            return "不能组成三角形";

        if( sideEqualNum(sides) == 3 ){
            type.append("等边三角形");
            return type.toString();
        }
        if( sideEqualNum(sides) == 2 )
            type.append("等腰三角形");
        if( sideEqualNum(sides) == 0 ){
            if(isRightTriangle(sides)){
                type.append("直角三角形");
            }else{
                type.append("一般三角形");
            }
        }
        return type.toString();
    }
    /**
     * 三边的合法校验
     * @param sides
     * @return true:输入合法 false:输入不合法
     */
    public static boolean isLegal(int[] sides ){
        if( (sides[0] > 0 && sides[0] <= 200) && (sides[1] > 0 && sides[1] <= 200) && (sides[2] > 0 && sides[2] <= 200) )
            return true;
        else 
            return false;
    }
    /**
     * 能否组成三角形,两边和大于第三边,两边差小于第三边
     * @param sides
     * @return true:能组成三角形 false:不能组成三角形
     */
    public static boolean canMakeUpTriangle(int[] sides){
        int [] newSides = sort(sides);
        if( (newSides[0] + newSides[1] > newSides[2]) && 
                (newSides[2] - newSides[1] < newSides[0]) && (newSides[2] - newSides[0] < newSides[1]) )
            return true;
        else 
            return false;
    }
    /**
     * 确定相等的边数
     * @param sides
     * @return 相等的边数
     */
    public static int sideEqualNum(int[] sides){
        if( (sides[0] == sides[1]) && (sides[1] == sides[2]) )
            return 3;
        if( (sides[0] == sides[1]) || (sides[0] == sides[2]) || (sides[1] == sides[2]))
            return 2;
        else
            return 0;
    }
    /**
     * 判断是否为直角三角形
     * @param sides
     * @return true 是直角三角形,false 不是直角三角形
     */
    public static boolean isRightTriangle(int[] sides){
        int [] newSides = sort(sides);
        return ( (newSides[0]^2 + newSides[1]^2) == (newSides[2]^2) );

    }
    /**
     * 将三边从小到大排序
     * @param sides
     * @return 按照增序排列的边数组
     */
    public static int[] sort(int[] sides){
        for(int i = 0; i < sides.length; i++){
            for(int j = 0; j < sides.length - i - 1; j++){
                if(sides [j] > sides[ j + 1 ]){
                    int temp = sides[j];
                    sides[j] = sides[ j + 1 ];
                    sides[ j + 1 ] = temp;
                }
            }
        }
        return sides;
    }
}
2、创建测试类

只摘取了两个测试类,等会放到测试套件中

package com.neo.test;

import static org.junit.Assert.assertEquals;

import org.junit.Test;
/**
 * 三边合法性测试类
 * @author le
 *
 */
public class TestJunit1 {
    int[] a0 = {-11,12,10};
    int[] a1 = {192,203,190};
    int[] a2 = {3,4,-6};
    @Test
    public void getTypeResult(){
        assertEquals("输入越界", com.neo.service.getTypeResult.getType(a0));
        assertEquals("输入越界", com.neo.service.getTypeResult.getType(a1));
        assertEquals("输入越界", com.neo.service.getTypeResult.getType(a2));
    }
}
package com.neo.test;

import static org.junit.Assert.assertEquals;

import org.junit.Test;
/**
 * 一般三角形测试类
 */
public class TestJunit2 {
    int[] a0 = {1,3,5};
    int[] a1 = {6,2,4};
    int[] a2 = {4,8,3};
    int[] a3 = {5,4,7};
    @Test
    public void getTypeResult(){
        assertEquals("不能组成三角形", com.neo.service.getTypeResult.getType(a0));
        assertEquals("不能组成三角形", com.neo.service.getTypeResult.getType(a1));
        assertEquals("组成三角形", com.neo.service.getTypeResult.getType(a2));
        assertEquals("三角形", com.neo.service.getTypeResult.getType(a3));
    }
}
3、创建测试套件
package com.neo.test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({
   TestJunit1.class,
   TestJunit2.class,
})
public class JunitTestSuite {
}
4、创建TestRunner类
package com.neo.test;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
   public static void main(String[] args) {
      Result result = JUnitCore.runClasses(JunitTestSuite.class);

      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
      System.out.println(result.wasSuccessful());
   }
}  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值