【软件测试】Junit入门

写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文!

本博客全网唯一合法URL:http://www.cnblogs.com/acm-icpcer/p/8931406.html

 

 

  待测试的三角形类代码:

复制代码
package test1;

public class triangle_class1 {
    public static class triangle1{
        private int a,b,c;
        triangle1(int x1,int x2,int x3){
            set_data(x1,x2,x3);
        }
        //0
        public boolean set_data(int x1,int x2,int x3){
            a=x1;
            b=x2;
            c=x3;
            return true;
        }
        //1
        public boolean edge_legal(){
            if((a>200||a<=0)||(b>200||b<=0)||(c>200||c<=0)){
                return false;
            }
            else
                return true;
        }
        //2
        public boolean is2biggerthan1(){
            if((a+b>c)||(c+b>a)||(a+c>b)){
                return true;
            }
            else
                return false;
        }
        //3
        public boolean istriangle(){
            if(edge_legal()&&is2biggerthan1()){
                return true;
            }
            else
                return false;
        }
        //4
        public boolean is_eage_equal(){
            if((a==b)||(a==c)||(c==b)){
                return true;
            }
            else
                return false;
        }
        //5
        public int howmany_eage_equal(){
            int result=0;
            if(a==b)
                result++;
            if(a==c)
                result++;
            if(c==b)
                result++;
            return result;
        }
        //6
        public boolean is_right_angle(){
            if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a)){
                return true;
            }
            else
                return false;
        }
        //7
        public boolean is_right_triangle(){
            return is_right_angle();
        }
        //8
        public boolean is_all_edges_equal(){
            if((a==b)&&(a==c)&&(c==b))
                return true;
            else 
                return false;
        }
        //9
        /*return value explanations:
         *1:is not a legal triangle
         *2:all edges equal triangle
         *3:only 2 edges equal
         *4:right angle triangle
         *5:等腰直角三角形
         *6:normal triangle
         * */
        public int finaltest(){
            if(!istriangle())
                return 1;
            else if(is_all_edges_equal())
                return 2;
            else if((!is_all_edges_equal())&&is_eage_equal())
                return 3;
            else if(is_right_triangle())
                return 4;
            else if(is_eage_equal()&&is_right_triangle())
                return 5;
            else
                return 6;
        }
    }
    /*
    public static void main(){
        triangle1 obj=new triangle1(2,2,2);
        System.out.println(obj.finaltest());
    }*/
}
复制代码

  在同一个包内创建junit测试代码:

复制代码
package test1;

import static org.junit.Assert.*;

import org.junit.Assert;
import org.junit.Test;

import test1.triangle_class1.triangle1;

public class triangle1Test {

    @Test
    public void test1() {
        triangle1 obj1=new triangle1(2,2,3);
        assertEquals(true,obj1.edge_legal());
        triangle1 obj2=new triangle1(3,4,5);
        assertEquals(3,obj2.finaltest());
    }
    /*
    public void test2() {
        int[][] data={
            {2,2,3},
            {3,4,5},
            {210,3,3}
        };
        for(int i=0;i<3;i++){
            int x=data[i][0],y=data[i][1],z=data[i][2];
            triangle1 obj1=new triangle1(x,y,z);
            Assert.assertEquals(true,obj1.edge_legal());
        }
    }
    */
}
复制代码

  junit测试文件的创建方法如下:右键点击要测试的代码文件,选择new中的Junit Test Case即可创建,注意测试代码的主类名字必须是被测试类的名字+Test。

  运行测试用例代码的方法:右键junit代码文件,run as:junit test即可。

  若测试用例代码全部通过则显示绿条:

  只要测试代码有一句没通过则显示红条,双击下方的failure trace中的详细信息可以知道具体哪一句代码没通过。

 

  测试用例:

用例ID

输入数据

预期输出

实际输出

是否通过

备注

001

2,2,3

True

True

Yes

 

002

3,4,5

直角三角形

直角三角形

Yes

 

003

3,3,3

等边三角形

等边三角形

Yes

 

004

4,4,5

等腰三角形

等腰三角形

Yes

 

005

3,4,5

直角三角形

直角三角形

Yes

 

006

2,4,5

普通三角形

普通三角形

Yes

 

  总之,第一次使用软件测试工具来测试代码,以往测试,我一般喜欢设置断点,或者debbug调试,linux下就一般使用gdb,从来没使用过junit这样集成在开发环境里的编程测试工具。我不是很习惯这种测试工具,可能是还没用惯,感觉这类工具不实用,因为涉及到编程去进行测试的话必然会增加开发负担。

 

 

tz@COI HZAU

2018/4/24

posted on   tuzhuo  阅读(271)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示