实践二

一、题目简介

该实践题目内容主要实现加减乘除运算,假定两个整数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的知识,自己收获颇多,也发现自己以前知识不牢固,忘记很多重点内容,通过这次实验,自己又找到了自己努力的方向和自己下阶段要做的工作。自己也认识到自己的不足之处,未来会不断完善和提高自己的。

时间: 2024-07-30 13:51:21

实践二的相关文章

ASP.NET MVC5 网站开发实践(二) Member区域 - 添加文章

转自:http://www.cnblogs.com/mzwhj/p/3592895.html 上次把架构做好了,这次做添加文章.添加文章涉及附件的上传管理及富文本编辑器的使用,早添加文章时一并实现. 要点: 富文本编辑器采用KindEditor.功能很强大,国人开发,LGPL开源,自己人的好东西没有理由不支持. 附件的上传同样基于KindEditor实现,可以上传图片,flash,影音,文件等. 目录 ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一)

Linux及安全实践二

Linux及安全实践二   基本内核模块 20135238 龚睿 1.  理解模块原理 linux模块是一些可以作为独立程序来编译的函数和数据类型的集合.之所以提供模块机制,是因为Linux本身是一个单内核.单内核由于所有内容都集成在一起,效率很高,但可扩展性和可维护性相对较差,模块机制可弥补这一缺陷. Linux模块可以通过静态或动态的方法加载到内核空间,静态加载是指在内核启动过程中加载:动态加载是指在内核运行的过程中随时加载. 一个模块被加载到内核中时,就成为内核代码的一部分.模块加载入系统

张萍萍 计科高职13-1 201303014010 实践二个人项目

实践二个人实践   学号: 201303014010   姓名:张萍萍    班级:计科(高职)13-1 一.题目简介 这次实践是创建一个加减乘除的简单的小程序,主要利用加减乘除四种方法来实现简单的数字计算. 二.源码的github链接: https://github.com/elinesping/project2/blob/master/张萍萍-201303014010-计科高职13-1-实践二个人项目代码 三.所设计的模块测试用例.测试结果截图 模块测试用例代码: import static

OWIN的理解和实践(二) – Host和Server的开发

原文:OWIN的理解和实践(二) – Host和Server的开发 对于开发人员来说,代码就是最好的文档,如上一篇博文所说,下面我们就会基于Kanata项目的一些具体调用代码,来进一步深入理解OWIN的实现和作用. 今天我们先针对Host和Server来实现一个简单的应用. 我们的开发环境是:  VS2013 Update 3,  .Net Framework 4.5.1 Host开发 如上篇博文提及,Host具有如下特点: 实现一个宿主进程 负责Server的启动和关闭 负责Middlewar

【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World

操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service docker stop  #停止服务 service docker restart #重启服务 service docker status   #查看服务状态 启动Docker服务 docker是一个CS模型,需要先启动服务端,直接执行 sudo service docker start 启动docker

Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)

原文:Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二) Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 3. Nginx配置反向代理 3.1 cnetos 安装nginx 首先,我们需要在服务器上安装Nginx.参考网址 3.1.1:添加Nginx存储库 要添加CentOS 7 EPEL仓库,请打开终端并使用以下命令: sudo yum install epel-release EPEL的全称叫 Ex

跨年夜,“牧星人”守护实践二十号卫星完成第四次变轨

吕炳宏 田枝 科技日报记者 付毅飞 "能赶在跨年前帮助实践二十号卫星再进一步,看着卫星距离目标轨道越来越近,真的很开心!"西安卫星测控中心工程师宋超注视着大屏上缓慢变化的状态曲线感叹道. 2019 年 12 月 31 日晚,距离 2020 年到来还有不到 5 小时,西安卫星测控中心指挥控制大厅灯火通明.宋超正在与同事们实施实践二十号卫星的第四次变轨任务.他们坐在电脑前,全神贯注地注视着大屏幕上的卫星状态数据. 4 天前,搭载着实践二十号卫星的"胖五"在文昌航天发射场

《Linux及安全》课程实践二

编译生成新内核 一.实践原理 Linux模块是一些可以作为独立程序来编译的函数和数据类型的集合.之所以提供模块机制,是因为Linux本身是一个单内核.单内核由于所有内容都集成在一起,效率很高,但可扩展性和可维护性相对较差,模块机制可弥补这一缺陷. Linux模块可以通过静态或动态的方法加载到内核空间,静态加载是指在内核启动过程中加载:动态加载是指在内核运行的过程中随时加载. 一个模块被加载到内核中时,就成为内核代码的一部分.模块加载入系统时,系统修改内核中的符号表,将新加载的模块提供的资源和符号

领域驱动设计之单元测试最佳实践(二)

领域驱动设计之单元测试最佳实践(一) 介绍完了DDD案例,我们终于可以进入主题了,本方案的测试代码基于Xunit编写,断言组件采用了FluentAssertions,类似的组件还有Shouldly.另外本案例使用了Code Contracts for .NET,如果不安装此插件,可能有个别测试不能正确Pass. 为了实现目标中的第二点:"尽量不Mock,包括数据库读取部分”,我尝试过3种方案: 1.测试代码连接真实数据库,只需要将测试数据库配置到测试项目中的web.config中,即可达到这一目