软件测试作业——Junit使用

软件测试作业——Junit使用

[TOC]

题目要求

  1. Install Junit(4.12),Hamcrest(1.3) with Eclipse
  2. Install Eclemma with Eclipse
  3. Write a javaprogram for the triangle problem and test the program with Junit.

Description oftriangle problem:Functiontriangle takes three integers a,b,cwhich are length of triangle sides; calculates whether the triangle isequilateral, isosceles, or scalene.

解答

代码

Traingle类

/**
 * Created by tjliqy on 2018/3/22
 */
public class Triangle {

    //TriangleType
    public static final int EQUILATERAL = 1;
    public static final int ISOSCELES = 2;
    public static final int SCALENE = 3;

    //The length of three sides of the triangle
    private double sides[] = {0,0,0};

    private int triangleType ;

    /**
     * Construction method of Triangle
     * @param a 1st side length
     * @param b 2nd side length
     * @param c 3rd side length
     */
    public Triangle(double a,double b, double c){
        this.sides[0] = a;
        this.sides[1] = b;
        this.sides[2] = c;
        for (int i = 0; i < 3; i++) {
            int sum = 0;
            int difference = 0;
            boolean getMinuend = false;
            //得出其他两边和或差
            for (int j = 0; j < 3; j++) {
                if (j != i){
                    sum += sides[j];
                    if (!getMinuend){
                        difference += sides[j];
                        getMinuend = true;
                    }else {
                        difference -= sides[j];
                        difference = Math.abs(difference);
                    }
                }
            }
            if (sum <= sides[i] || difference >= sides[i]){
                throw new NotTriangleException();
            }
        }
        initType();
    }

    /**
     * init triangleType
     */
    private void initType(){
        if (sides[0] == sides[1] && sides[1] == sides[2]){
            triangleType = EQUILATERAL;
        }else if (sides[0] == sides[1] || sides[0] == sides[2] || sides[1] ==sides[2]){
            triangleType = ISOSCELES;
        }else {
            triangleType = SCALENE;
        }
    }

    public int getTriangleType() {
        return triangleType;
    }

    /**
     * Equals when two triangles are in same type.
     * @param obj
     * @return
     */
    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof  Triangle)){
            return false;
        }
        Triangle other = (Triangle)obj;
        return  this.getTriangleType() == other.getTriangleType();
    }
}

NotTriangleException类仅仅继承了RuntimeException。

TriangleTest类


import org.junit.Test;
import org.hamcrest.*;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.*;
import static org.junit.Assert.assertEquals;

/**
 * Created by tjliqy on 2018/3/22
 */
public class TriangleTest {

    @Test(expected = NotTriangleException.class)
    public void triangleErrorTest() throws NotTriangleException {
        new Triangle(0, 0, 0);
    }

    @Test
    public void equilateralTest() {
        Triangle triangle = new Triangle(1, 1, 1);
        assertEquals(Triangle.EQUILATERAL, triangle.getTriangleType());
    }

    @Test
    public void isocelesTest() {
        Triangle triangle = new Triangle(2, 2, 3);
        assertEquals(Triangle.ISOSCELES, triangle.getTriangleType());
    }

    @Test
    public void scaleneTest() {
        Triangle triangle = new Triangle(3, 4, 5);
        assertEquals(Triangle.SCALENE, triangle.getTriangleType());
    }

    /**
     * this func use hamcrest
     */
    @Test
    public void sameTypeTest() {
        Triangle t1 = new Triangle(4, 4, 4);
        Triangle t2 = new Triangle(5,5,5);
        assertThat("failure - They are not same!", t1, equalTo(t2));

    }
}

运行结果

Jar包引入过程

因为使用Idea作为开发工具,所以不支持Eclemma。

Junit引入流程https://blog.csdn.net/czd3355/article/details/53572989

Hamcrest在Junit4中自带。所以无需再次引入

原文地址:https://www.cnblogs.com/tjliqy/p/8646963.html

时间: 2024-10-27 07:14:32

软件测试作业——Junit使用的相关文章

两种软件测试框架——JUnit和NUnit

今天,我们来介绍两种软件测试框架——JUnit和NUnit. 一.JUnit: 在介绍JUnit之前,先来简单说一下Java类的测试.Java 类测试是 Java 应用开发的重要步骤.Java 类测试分为基本类测试.组合类测试和分布式组件测试.而Junit 工具主要针对 Java 基本类测试和组合类测试. Java基本类的特点是,类的成员变量类型.类方法的参数类型是 Java 基本类型.组合类的特点是,类的成员变量类型可以是非 Java 基本类型的类.类方法的参数类型可以是非 Java 基本类型

软件测试作业三 尝试使用JUnit

写一个判断三角形种类的代码,对其进行测试. 判断三角形代码: package 测试1; public class sjx { public String f(int a,int b,int c) { if(a<=0||b<=0||c<=0||a+b<=c||a+c<=b||b+c<=a) return "不是三角形"; if(a == b&&b == c) return "等边三角形"; else if(a ==

软件测试第三次作业junit和Eclemma的使用

1. 2.将第20行 for(int i = 0; i<=numPrimes-1;i++) 改为 for(int i = 0; i<numPrimes-1;i++) 3.n=2 4.节点覆盖: [0,1,2,3,5,3,4,6,7,8,9,10,11] 边覆盖 [0,1,2,3,5,3,4,6,7,8,9,10,9,10,11] [0,1,2,3,4,7,1,2,3,4,7,8,9,10,11] 主路径覆盖: [0,1,2,3,5,3,5,3,4,6,7,1,2,3,4,7,1,2,3,4,6

软件测试--作业四

<软件测试>第四次作业 1.某公司网站的后台管理有一个用户注册的功能需要测试,该测试为黑盒测试,请用表格的方式给出该功能的测试用例(参考课本P107页).用户注册功能描述如下: (1)       管理员必须先登录,方可进入网站后台管理,进入后台管理界面后可以进行用户注册(假设用户注册的URL地址为http://www.fengt.com/Admin/UserRegister.jsp) (2)       用户注册要求输入用户名.密码.密码确认.邮箱,这4项内容均不能为空 (3)      

软件测试作业三-printPrimes()

作业内容: private static void printPrimes(int n) { int curPrime; int numPrimes; boolean isPrime; int MAXPRIMES=50; int [] primes = new int [MAXPRIMES]; primes [0] = 2; numPrimes = 1; curPrime = 2; while (numPrimes < n) { curPrime++; isPrime = true; for (

软件测试作业——三

作业见<软件测试基础>中文版49页第7题.英文版63页 a) b) 令MAXPRIMES = 4,t1不能检查出错误,t2发生数组越界,使得t2比t1更容易发现. c)t3=(n=1) d)节点覆盖:TR={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} 边覆盖:TR={(1,2),(2,3),(2,12),(3,4),(4,5),(5,6),(6,8),(8,5),(6,7),(7,9), (5,9),(9,10),(10,11),(9,11),(12,13)

软件测试作业三

作业内容: Use the following method printPrimes() for questions a–f below. 代码如下: 1. /** ***************************************************** 2. * Finds and prints n prime integers 3. * Jeff Offutt, Spring 2003 4. *****************************************

第五次软件测试作业

构建指法心得体会 这是一次很特别的作业,对一本书做出的自己的心得体会,这是一本什么样的书本,对我而言,我也不太清楚,毕竟从开学到现在我大概就打开它两三次,也说不出这本书哪里好,但是所先,我拿起这本书,我习惯性看了这本书的目录,一览目录,觉得都是知识.都是新鲜的IT软件知识,关键我对IT感兴趣吗?如果我可以不打代码,我相信我会对IT之类的书本很感兴趣,有的人可以从打代码,做工程中得到成功的兴趣,而有的人只会这样说,总算好了,这个项目,这样就决定我自己是如何看待这本书了,不过知识毕竟是无价之宝,多一

软件测试实验——junit, hamcrest 和 eclemma的安装及使用

一.相关介绍 使用适当的工具可以使软件测试更加方便,简洁. 例如:JUnit4.4引入了Hamcrest框架,Hamcest提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活. Eclemma可以检查代码是否被运行. 以下主要介绍junit和hamcrest,,eclemma的安装及使用.有具体代码进行测试. 二.junit,hamcrest的安装及使用 1.下载junit.jar和hamcrest-all.jar两个jar包. 2.在eclipse中新建项目.右键->