实践二

一、题目简介

该实践题目内容主要实现加减乘除运算,假定两个整数a,b,利用java语言编写并利用Junit4进行程序模块的测试,回归测试。

二、源码的github链接

源码链接地址:https://github.com/githubmengqian/code

三、所设计的模块测试用例、测试结果截图

该实验主要使用ecplise平台上完成的,编写简单代码,使用junit进行测试工作,该代码主要实现简单的四则运算乘除的运算,主要使用java语言编程,将junit导入ecplise编程环境中,之后

首先需要建立一个java项目,之后将将JUnit4单元测试包引入这个项目:在该项目上点右属性,在新点开的窗口上点击junit,这样就相当于将junit包就包含了我们的项目了

实现该功能的代码,这里命名为Calculate.java

public class Calculate {

    public int add(int a, int b){

        return a+b;

    }

    public int minus(int a, int b){

        return a-b;

    }

    public int divide(int a,int b){

        return a/b;

    }

    public int multi(int a, int b){

        return a*b;

    }

}

主要由于四个方法,用于实现加减乘除四则运算。

在建好的该项目下右键点击新建一个junit Test case,具体实现代码:

TestCalculate.java

package math2;

import org.junit.Before;

import org.junit.Test;

// 静态导入

import static org.junit.Assert.*;

 public class TestCalculate {

 private Calculate cal;

  // 执行任意一个方法之前都会执行setUp方法

    @Before

    public void setUp(){

        cal = new Calculate();

    }

 // 加了@Test表示该方法是一个单元测试

    @Test

    public void testAdd(){

        /*

         * 以下是一个简单的断言的编写

         * 第一个参数是如果出错给出的提示信息

         * 第二个表示期望值,通常是用户指定的内容

         * 第三个表示代码返回的实际值

         */

    //  Assert.assertEquals("加法有问题", 34, cal.add(12,22));

        /*

         * 由于包进行了静态导入之后

         * Assert中的所有静态方法就不用再添加类名了

         * 这样可以有效地兼容junit3

         */

        assertEquals("加法有问题", 34, cal.add(12,22));

    }

    @Test

    public void testMinus(){

        int res = cal.minus(12, 2);

 //     Assert.assertEquals("减法有问题", 10, res);

        assertEquals("减法有问题", 10, res);

    }

    // 表示这个测试类应该抛出ArithmeticException,如果不抛出就报错

    @Test(expected=ArithmeticException.class)

    public void testDivide(){

        int res = cal.divide(12, 0);

        assertEquals("除法有问题", 6, res);

    }

  @Test

    public void testMulti(){

        int res = cal.multi(12, 2);

        assertEquals("乘法有问题",24,res);

    }

    //hamcrest 1.3

}

 

之后进行一次运行,显示结果为绿色,则说明通过测试。

这时也可以进行测试,例如expected参数,测试异常对象: @Test(expected=ArithmeticException.class),表示检查是否抛出ArithmeticException

将下列代码进行修改,测试其是否抛出异常:

    @Test(expected=ArithmeticException.class)

    public void testDivide(){

        int res = cal.divide(12, 0);

        assertEquals("除法有问题", 6, res);

修改后的代码:

       // 表示这个测试类应该抛出ArithmeticException,如果不抛出就报错

       @Test(expected=ArithmeticException. class)

       public void testDivide(){

             int res = cal.divide(12, 2);

             assertEquals( "除法有问题", 6, res);

      }

再次进行运行,结果报错:

四、问题及解决方案、心得体会

通过这次简单的实验编程,自己有了很多新的感触,也学到了了一种新的工具,更加便于自己在后续的学习,自己通过上网上查阅相关关于junit的知识,自己收获颇多,也发现自己以前知识不牢固,忘记很多重点内容,通过这次实验,自己又找到了自己努力的方向和自己下阶段要做的工作。自己也认识到自己的不足之处,未来会不断完善和提高自己的。

 

posted @ 2015-04-27 21:15  Qian1996  阅读(182)  评论(4编辑  收藏  举报