java单元测试算初级_Java____Eclipse下JUnit单元测试(初级)

给大家分享一个链接希望对你们有帮助 http://blog.csdn.net/huangbiao86/article/details/6709742

今天看图片命名唯一的策略时看到有个大大用JUnit测试,神奇的样子,遂上网搜集来三篇JUnit测试的入门文章,作为参考。原作地址在上面,下面是照着大大的讲解一步步执行的结果。加一些自己试验的体会。

在Eclipse3.2中使用JUnit4进行单元测试的方法。

首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。这个类并不是很完美,我们故意保留了一些Bug用于演示,这些Bug在注释中都有说明。该类代码如下:

package andycpp;

public class Calculator {

private static int result; // 静态变量,用于存储运行结果

public void add(int n) {

result = result + n;

}

public void substract(int n) {

result = result - 1; //Bug: 正确的应该是 result =result-n

}

public void multiply(int n) {

} // 此方法尚未写好

public void divide(int n) {

result = result / n;

}

public void square(int n) {

result = n * n;

}

public void squareRoot(int n) {

for (; ;) ; //Bug : 死循环

}

public void clear() { // 将结果清零

result = 0;

}

public int getResult() {

return result;

}

}

e14a529d6e49e1bcb722f5ae7ee9fb52.gif

第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,如图:原作地址:http://blog.csdn.net/andycpp/article/details/1327346 我们继续对初级篇中的例子进行分析。初级篇中我们使用Eclipse自动生成了一个测试框架,在这篇文章中,我们来仔细分析一下这个测试框架中的每一个细节,知其然更要知其所以然,才能更加熟练地

0553744967b32cda0e880cdb03a020ea.png

在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮,如下图所示:

709f341b6cc6dffd46bf4b77534e5bd4.png

然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。

第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New  JUnit Test Case”。如下图所示:

9ba80883ce876a70ebdcb5a666adba10.png

在弹出的对话框中,进行相应的选择,如下图所示:

cdf4ba41f44dbd0dc54909d9ed350c5c.png

点击“下一步”后,系统会自动列出你这个类中包含的方法,选择你要进行测试的方法。此例中,我们仅对“加、减、乘、除”四个方法进行测试。如下图所示:

b28d56eaccb58dfdd4ea9f5f54ba24ee.png

之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest代码如下:

package andycpp;

import static org.junit.Assert.*;

import org.junit.Before;

import org.junit.Ignore;

import org.junit.Test;

public class CalculatorTest {

private static Calculator calculator = new Calculator();

@Before

public void setUp() throws Exception {

calculator.clear();

}

@Test

public void testAdd() {

calculator.add(2);

calculator.add(3);

assertEquals(5, calculator.getResult());

}

@Test

public void testSubstract() {

calculator.add(10);

calculator.substract(2);

assertEquals(8, calculator.getResult());

}

@Ignore("Multiply() Not yet implemented")

@Test

public void testMultiply() {

}

@Test

public void testDivide() {

calculator.add(8);

calculator.divide(2);

assertEquals(4, calculator.getResult());

}

}

第四步,运行测试代码:按照上述代码修改完毕后,我们在CalculatorTest类上点右键,选择“Run As à JUnit Test”来运行我们的测试,如下图所示:

dd3405d445bdb64b5e3ac3fee15d928f.png

运行结果如下:

bc68eecd63f15494befafe67b1c01c13.png

进度条是红颜色表示发现错误,具体的测试结果在进度条上面有表示“共进行了4个测试,其中1个测试被忽略,一个测试失败”

注!虽然是在原来的class上直接生成的JUnitTest,但是只要回到原来的class中修正错误,再次运行JUnitTest即可直接测试了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有没有更好的Marker方法?

自Java 1.5推出以来,就是否在Java中使用Marker接口进行了广泛的讨论和辩论。 这是因为Java 1.5引入了注释功能,这些功能几乎可以解决Marker接口的目的。 本文将涵盖这场辩论的一个有趣的部分。 定义: Java中的标记接口是一个空接口&#xff…

php jquery ajax登录,jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)

弹出层主要用于展示丰富的页面信息,还有一个更好的应用是弹出表单层丰富交互应用。常见的应用有弹出登录表单层,用户提交登录信息,后台验证登录成功后,弹出层消失,主页面局部刷新用户信息。本文我们将给大家介绍如何使…

# 20155337 2017-2018-1 《信息安全系统设计基础》第二周课堂实践+myod

20155337 2017-2018-1 《信息安全系统设计基础》第二周课堂实践myod 因为在课上已经提交了四个实验,还欠缺最后一个实验,反省一下自己还是操作不熟练,平时在课下应该多多练习linux的命令训练。 实践一 每个* .c一个文件,每个*.h一…

CometD:Java Web应用程序的Facebook类似聊天

聊天就像吃一块蛋糕或喝一杯热咖啡一样容易。 您是否曾经考虑过自己开发聊天程序? 您知道,聊天不容易。 但是,如果您是开发人员,并且阅读了本文的结尾,则可以尝试自己开发一个聊天应用程序,并允许您的用户通…

怎么用PHP建立购物网站,如何使用PHP建设一个购物网站

本系统以PHP为主要制作工具,实现了用户注册、登录、验证身份及用户数据的采集、物品的预览查询、搜索/查看物品信息,站内最新物品信息发布,可进入在线下单从而实现了网络销售。网上购物,这个逐渐流行于二十世纪的购物方式已经为越…

团队作业2——需求分析原型设计

需求分析: 软件的最终目的是用来解决用户的某些问题,需求分析就是要理解要解决的问题,真正明确用户需求。请发表一篇随笔,完成初步的需求分析: 1.访问软件项目的真实用户(至少10个),…

给div命名,使逻辑更加清晰

我们把一些标签放进<div>里&#xff0c;划分出一个独立的逻辑部分。为了使逻辑更加清晰&#xff0c;我们可以为这一个独立的逻辑部分设置一个名称&#xff0c;用id属性来为<div>提供唯一的名称&#xff0c;这个就像我们每个人都有一个身份证号&#xff0c;这个身份…

css边框颜色渐变

在实际开发中&#xff0c;我们经常遇见边框需要背景渐变的实现要求&#xff0c;那么如何去实现呢&#xff0c;今天给大家分享依稀几种情况 1.直角的背景渐变 <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><meta…

170406、用uid分库,uname(用户名)上的查询怎么办

【缘起】 用户中心是几乎每一个公司必备的基础服务&#xff0c;用户注册、登录、信息查询与修改都离不开用户中心。 当数据量越来越大时&#xff0c;需要多用户中心进行水平切分。最常见的水平切分方式&#xff0c;按照uid取模分库&#xff1a; 通过uid取模&#xff0c;将数据分…

bzoj2144: 跳跳棋(二分/倍增)

思维好题&#xff01; 可以发现如果中间的点要跳到两边有两种情况&#xff0c;两边的点要跳到中间最多只有一种情况。 我们用一个节点表示一种状态&#xff0c;那么两边跳到中间的状态就是当前点的父亲&#xff0c;中间的点跳到两边的状态就是这个点的两个儿子&#xff0c;从而…

电脑投屏软件哪个好_目前当贝市场中投屏软件哪个好,最全面投屏技巧盘点

现在不管是在家里还是公司里&#xff0c;为了看一些是视频和资料&#xff0c;投屏到电视上是一件非常必要的事情&#xff0c;但是现在投屏的技巧各种各样&#xff0c;投屏的软件也是五花八门&#xff0c;小编平常也是经常投屏&#xff0c;也试过非常多的方法&#xff0c;这边分…

从零开始的全栈工程师——html篇1.2

起名方式与CSS 一.起名方式(起名方式也叫选择器) 起名的目的是为了给标签添加属性 常见的3种选择器有 标签选择器 id选择器(使用的时候加#) class选择器(使用的时候加.) 样式的要求是由选择器的权重来决定的 标签的权重为1 class的权重是10 id的权重是100 权重是可…

Spring:设置日志依赖项

这篇文章描述了如何在Spring中设置日志依赖。 它基于Dave Syer的帖子中提供的信息 。 这里提供有关Java日志记录框架的提醒。 该代码示例可在GitHub的Spring-Logging-Dependencies目录中找到。 Spring使用Jakarta Commons Logging API&#xff08;JCL&#xff09;。 不幸的是&…

安卓app开发工具_怎么开发app软件需要多少钱?主流app开发工具盘点

现在智能手机的快速普及让手机app在生活中越来越重要&#xff0c;很多企业及创业者也意识到了app的重要性&#xff0c;但是怎么开发app软件&#xff1f;有哪些主流app开发工具呢&#xff1f;这里就为大家分享一下如何快速开发app软件。一、编程app开发工具主要针对专业的程序员…

大话设计模式读书笔记(十一) 观察者模式

观察者模式&#xff1a; 书中通过小菜描述同事在公司看股票行情&#xff0c;并请求前台帮忙在老板回来时提醒同事&#xff0c;引出需求。将前台通知同事老板回来的事写成程序。未用模式实现&#xff1a; 1 //前台类2 public class Secretary {3 private List<StockObser…

解决高度塌陷

<!DOCTYPE html> <html lang"en" dir"ltr"><head><meta charset"utf-8"><title>高度塌陷解决</title><style media"screen">.box1{border: 10px #bfc993 solid;}.box2{width: 100px;height…

IBM AIX:Java进程大小监视

本文将为您提供有关如何计算在IBM AIX 5.3 OS上运行的Java VM进程的Java进程大小内存占用量的快速参考指南。 这是我关于该主题的原始文章的补充文章&#xff1a; 如何在AIX上监视Java本机内存 。 我强烈建议所有参与生产支持或AIX上部署Java应用程序开发的人员阅读此书。 为…

pstate0 vid数值意义_天体运动的简单数值计算

&#xff08;建议阅读全文&#xff09; 预备知识 万有引力&#xff0c; 弹簧振子受迫运动的简单数值计算    下面我们来用一种极其简单的算法对单个天体在中心天体的万有引力作用下的运动进行数值计算&#xff0e; 事实上该问题存在解析解&#xff08;见开普勒三定律&#x…

集合框架

集合框架包含的内容&#xff1a; 集合框架的接口&#xff1a; List接口实现类 ArrayList 1 package com.jredu.ch01;3 import java.util.ArrayList;5 import java.util.List;7 public class ArrayListTest {9 public static void main(String[] args) { 10 // TODO…

Java中的类型安全的空集合

我之前曾在Java Collections类的实用程序上进行过博客撰写&#xff0c;并且特别地在使用Usings Collections Methods上的博客emptyList&#xff08;&#xff09;&#xff0c;emptyMap&#xff08;&#xff09;和emptySet&#xff08;&#xff09;上进行了博客撰写。 在本文中&a…