1 从http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22junit%22%20AND%20a%3A%22junit%22

上下载最新的junit包。

2 建立名为JunitTest的JavaProject,把下载的junit-4.12.jar添加到工程中

3 建立com.abc的package,在该package下建立Calculator.Java,用来实现加减乘除运算。

  1. package com.abc;
  2. publicclass Calculator {
  3. publicint add(inta,intb) {
  4. returna +b;
  5. }
  6. publicint minus(inta,intb) {
  7. returna - 1;  //故意写错,方便测试
  8. }
  9. publicint divide(inta,intb) {
  10. returna /b;
  11. }
  12. publicint mul(inta,intb) {
  13. returna *b;
  14. }
  15. }

4 创建测试

(1)右键点击要测试的类Calculator.java,“New”,“JUnit Test Case”

(2)这里有四个方法可选:setUpBeforeClass()和setUp()是用于测试之前的准备工作,区别在于setUpBeforeClass()是针对整个类的,只执行一次,setUp()是针对方法的,每个测试方法被执行之前都会先执行setUp();tearDownAfterClass()和tearDown()是用于测试之后释放资源的,区别在于tearDownAfterClass()是针对整个类的,只执行一次,tearDown()是针对方法的,每个测试方法被执行后都会执行tearDown()。

这里勾选setUpBeforClass()。

(3)这里可以选择要测试的方法。把四个运算方法都选上。

(4)点击finish后生成的代码如下图所示

(5)编写测试类代码

  1. package com.abc;
  2. importstatic org.junit.Assert.*;
  3. importorg.junit.Before;
  4. importorg.junit.Test;
  5. publicclass CalculatorTest {
  6. Calculatorcal;
  7. @Before
  8. publicvoid setUp()throws Exception{
  9. cal =newCalculator();
  10. }
  11. @Test
  12. publicvoid testAdd() {
  13. intres =cal.add(20, 10);
  14. assertEquals("加法错误",res, 30);
  15. }
  16. @Test
  17. publicvoid testMinus() {
  18. intres =cal.minus(20, 10);
  19. assertEquals("减法错误",res, 10);
  20. }
  21. @Test
  22. publicvoid testDivide() {
  23. intres =cal.divide(20, 10);
  24. assertEquals("除法错误",res, 2);
  25. res =cal.divide(20, 0);
  26. }
  27. @Test
  28. publicvoid testMul() {
  29. intres =cal.mul(20, 10);
  30. assertEquals("乘法错误",res, 200);
  31. }
  32. }

5 开始测试

右键点击Calculator,“Run As”,“JUnitTest”,报initializationError的错误

这个错误是因为少了junit-4.12.jar的两个依赖包:hamcrest-core-1.3.rc2.jar和hamcrest-library-1.3.rc2.jar。

从网络上下载这两个包并添加到工程中:

重新进行单元测试,结果如下:

上述结果显示了两个方法是正确的,一个方法是计算结果错误,另一个方法是编译错误。

点击testMinus,可以查看错误信息为计算结果应该为10却计算成了19。

点击testDivide,可以看到错误信息为除数不能为0。

Java笔记18:JUnit单元测试的更多相关文章

  1. day1 java基础回顾-Junit单元测试

    Junit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个类对应一个测试类. 1,测试类与被测试类最好是放到同一个包中(可以是不同的源文件 ...

  2. java基础72 junit单元测试

    1.junit要注意的细节 1.如果junit测试一个方法,在junit窗口上显示绿色代表测试成功:如果显示红条,则代表测试方法出现异常不通过.    2.如果点击方法名.包名.类名.工程名运行jun ...

  3. 白盒测试笔记之:Junit 单元测试以及测试覆盖率

    单元测试: 单元测试是从代码层面验证代码的正确性. 一般考虑接口中的数据结构是否正确,变量的临界条件,如空字符串,空集合等. ​ Junit入门  参考: Junit 入门教程: https://ww ...

  4. JAVA自动化之Junit单元测试框架详解

    一.JUnit概述&配置 1.Junit是什么? Junit是一个Java 编程语言的开源测试框架,用于编写和运行测试.官网 地址:https://junit.org/junit4/ 2.Ma ...

  5. Thinking in Java——笔记(18)

    I/O The original byte-oriented library was supplemented with char-oriented, Unicode-based I/O classe ...

  6. Java中的Junit单元测试

    测试方法必须使用@Test进行修饰 测试方法必须使用public void 进行修饰,不能带任何的参数 新建一个源代码目录来存放我们的测试代码 测试类的包名应该和被测试类的包名一致 测试单元中的每个方 ...

  7. 解决Junit单元测试 找不到类 ----指定Java Build Path

    做junit 单元测试时,发现怎么执行都是以前编译过得代码. 最后找到原因了, src/test/java 编译完的.class路径是 Default output folder Default ou ...

  8. Java 工具 JUnit单元测试

    Java 工具 JUnit单元测试 @author ixenos 1.1.   JUnit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个 ...

  9. Spring完全基于Java配置和集成Junit单元测试

    要点: 配置继承WebApplicationInitializer的类作为启动类,相当于配置web.xml文件 使用@Configuration注解一个类,在类中的方式使用@Bean注解,则表名该方法 ...

随机推荐

  1. 关于Sphinx中使用 RealTime Index的问题

    我们有了完整索引和增量索引,为什么还需要研究实时索引? 1.完整索引每个晚上空闲时执行一次,时间较长,但问题不大,因为IO慢,CPU累,但那个时间段基本没有人使用平台,比如凌晨2点. 2.增量索引:目 ...

  2. 如何实现artTemplate模板的可重用性,以此框架打造自己的自定义组件

    问题的提出: 我们为什么非得要引入artTemplate来进行JSON数据的渲染呢? http://dagmom.iteye.com/blog/1671498http://bbs.csdn.net/t ...

  3. git 命令小结

    一.git 版本管理 1.git log: 获取当前版本之前的所有操作 2.git log --pretty=oneline:获取当前版本的前三和后三个操作 3.git reflog :获取当前项目下 ...

  4. sonarQube安装及本机扫描C#项目

    因项目需要,需要使用sonarQube对代码进行扫描并查看,因对sonarQube不熟悉,所以先在本机搭建测试环境. 参考了张老师的博客:http://www.cnblogs.com/danzhang ...

  5. 【转载】RecyclerView使用全解析

    崇拜下鸿洋大神,原文地址:http://blog.csdn.net/lmj623565791/article/details/45059587 概述 RecyclerView出现已经有一段时间了,相信 ...

  6. 洛谷P2874 [USACO07FEB]新牛棚Building A New Barn [贪心]

    题目传送门 题目描述 After scrimping and saving for years, Farmer John has decided to build a new barn. He wan ...

  7. 差分【bzoj3043】IncDec Sequence

    Description 给定一个长度为n的数列{a1,a2...an},每次可以选择一个区间[l,r],使这个区间内的数都加一或者都减一. 问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证 ...

  8. Memory Allocation with COBOL

    Generally, the use of a table/array (Static Memory) is most common in COBOL modules in an applicatio ...

  9. CSS 笔记——选择器

    1. 选择器 (1)类型选择器(标签选择器) 基本语法 E { sRules } 使用说明 类型选择器.以文档对象(Element)类型作为选择器. 选择面较大,适合做某种标签元素外观的常规设置. 代 ...

  10. NOIP 2006 提高组 t1 能量项链

    题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定 ...