这篇文章是junit的入门,文章主要包含下面的几个部分:

1.junit是什么?我们为什么要使用junit这个框架?使用junit框架能够给我们带来什么?

2.一个简单的junit的测试demo。

1.junit是什么?

JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.简单的说junit是一个简单的旨在编写重复tests的框架。junit是xunit的在java方面的具体实现。

2.我们为什么使用junit?使用junit给我们带来了什么?一个简单的junit的测试的demo(junit 3.8.2)。

待测试代码:

/** * */ package com.jefferyxu.jumpstart; /** * 一个简单的计算器的实例 * @author jefferyxu * */ public class Calculator { public double add(double a, double b) { return (a + b); } }

如果不适用junit框架,简单的来讲如果只是测试add方法,可以这么来实现:

/** * */ package com.jefferyxu.jumpstart; /** * @author jefferyxu * */ public abstract class TestCalculator { /** * 如果没有使用junit框架的话,测试上面的Calculator * 需要按照如下的方式. * @param args */ public static void main(String[] args) { Calculator calc = new Calculator(); double result = calc.add(10, 50); if (result != 60) { System.out.println("bad result :" + result); } } }

考虑到这个测试程序的可拓展性(除了add方法之外还需要测试其他的method),可以这么写:

/** * */ package com.jefferyxu.jumpstart; /** * @author jefferyxu * */ public class TestCalculator { private int nbErrors = 0; public void testAdd() { Calculator calc = new Calculator(); double result = calc.add(10, 50); if (result != 60) { System.out.println("bad result :" + result); } } /** * 拓展其他的测试method */ public static void main(String[] args) { TestCalculator test = new TestCalculator(); try { test.testAdd(); /* * 拓展其他的测试method */ } catch(Throwable e) { test.nbErrors++; e.printStackTrace(); } if(test.nbErrors > 0) { throw new RuntimeException("threr are " + test.nbErrors + " errors."); } } }

显然上面的TestCalculator能够较好的完成test的工作,但是为了满足这些条件规则的话,需要编写很多的支持的代码。如果你愿意一遍遍的编写重复的代码,那也ok。简单的并且偷懒的方法就是使用junit的框架,这个框架为你省去了编写这些“重复”代码的工作。

使用junit框架来测试(这里忽略了junit的安装步骤,直接使用的myeclipse 8.5):

代码如下:

package com.jefferyxu.jumpstart; import junit.framework.TestCase; /** * @author Administrator * */ public class TestCalculator extends TestCase { public void testAdd() { Calculator calc = new Calculator(); double result = calc.add(10, 50); assertEquals(60, result, 0); } }

测试结果如图:

显然测试成功。需要通过上面的简单的demo,我们需要注意如下的问题:

  • 每个使用junit的测试类需要继承自junit.framework.TestCase。
  • 测试方法推荐使用testXXX的形式。
  • 测试的类推荐使用TestXXX的形式。

转载于:https://www.cnblogs.com/xuqiang/archive/2010/10/10/1953478.html

junit jumpstart相关推荐

  1. JUnit单元测试依赖包构建路径错误解决办法

    JUnit单元测试依赖包构建路径错误解决办法: 选中报错的项目文件夹→右击选择属性(ALT+Enter)→java构建路径→库→添加库→JUnit→选择合适的Junit库版本.

  2. Junit的安装与使用

    一.简介: JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个. JUnit有它 ...

  3. JUnit基础及第一个单元测试实例(JUnit3.8)

    JUnit基础及第一个单元测试实例(JUnit3.8) 单元测试 单元测试(unit testing) ,是指对软件中的最小可测试单元进行检查和验证. 单元测试不是为了证明您是对的,而是为了证明您没有 ...

  4. junit集成Hamcrest测试集合中某个属性是否包含特定值

    junit已经集成Hamcrest但是还是需要引用hamcrest-library,不然只有基本方法,高级的没有 <dependency> <groupId>junit< ...

  5. 【Junit】BeforeClass、Before、After、AfterClass

    在JUnit4中,添加了Annotations来标记测试. 测试方法由@Test 标记说明.使用标记的好处是你不用将所有测试方法命名为testFoo()这种形式. 执行顺序: @BeforeClass ...

  6. Junit单元测试需要知道的一些知识点

    Junit单元测试框架-基于java语言对的主流单元测试框架 @beforeClass-位于数据准备前期或者其他前期准备(测试类调用前) --用于提取代码中的共用部分减少冗余,只能声明注解一次 --必 ...

  7. JUnit测试类完成后事务是默认 回滚的。只能查询数据,不能增删改。

    JUnit测试类完成后事务是默认 回滚的.只能查询数据,不能增删改. 在测试类或者测试方法上面加上注解 @Rollback(false)  表示事物不回滚,这样数据就可以提交到数据库中了. 转载于:h ...

  8. junit、hamcrest、eclemma的安装与使用

    1.junit的安装与使用 1.1 安装步骤 1)从http://www.junit.org/ 下载junit相应的jar包: 2) 在CLASSPATH中加入JAR包所在的路径,如E:\Java\j ...

  9. junit配合catubuter统计单元测试的代码覆盖率

    1.视频参考孔浩老师ant视频笔记 对应的build-junit.xml脚步如下所示: <?xml version="1.0" encoding="UTF-8&qu ...

最新文章

  1. 求字符串全排列 python实现
  2. 计算机应用基础第四章知识点,计算机应用基础 第四章电子表格笔试知识点总结...
  3. mysql_cluster
  4. 如何让Linux禁止Ctrl+Alt+Del重启(防止被强行关闭)     erikxue 薛忠权
  5. Linux 文件和目录的属性及权限
  6. Python学习笔记:错误,测试,调试(转)
  7. c# 如何在webbrowser控件执行一段JS代码
  8. 设计潮流趋势|背景图案素材,增加设计对比和补充前景元素
  9. Web系统集成OCS在线状态功能
  10. 如何修改leaflet的marker图标
  11. OpenPose的使用
  12. allshare cast安卓版下载_PanDownload 安卓手机版,解决百度网盘下载速度慢
  13. Socket编程面试题
  14. Google奥运会彩蛋,你确定不来参加一下吗?
  15. 聊聊新西兰的工作和生活
  16. CSS3效果 光斑动画(渐变)
  17. Connect Four四子棋c++程序 - 用户交互(1)
  18. 【计算机视觉40例】案例28:表情识别
  19. 电赛专题 | G题-双路语音同传
  20. 通过docker安装zabbix5.0分布式监控系统

热门文章

  1. 编码互换变量c语言,【剑仙教程】TC。字符 和字符编码 互换。
  2. Hadoop系列五:Hadoop之Zookeeper篇
  3. 关于Jsoup解析https网页的问题
  4. oracle获取父级,如何通过sql获取oracle connect中的最终父id列
  5. delphi 读取ini所有项_财务机器人真的会代替财务人员所有工作吗?
  6. SQL优化—— 优化insert语句
  7. 锁绑定多个条件Condition
  8. 数据输出:如何将数据带给页面||SpringMVC除过在方法上传入原生的request和session外还能怎么样把数据带给页面
  9. 关于chorme浏览器无法保存第三方cookie的问题
  10. JavaScript 技术篇-js只获取本节点text文本,不包含子节点