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。

最新文章

  1. 【bzoj1014】 JSOI2008—火星人prefix
  2. hdu 2042 - 不容易系列之二
  3. linux 安装GCC
  4. [转] iOS使用NSMutableAttributedString 实现富文本(不同颜色字体、下划线等)
  5. Spring mvc interceptor配置拦截器,没有登录跳到登录页
  6. Kendo UI开发教程(6): Kendo DataSource 概述
  7. 插件管理工具 Alcatraz
  8. 看懂c/c++ 函数、指针、数组定义
  9. rotate image(旋转数组)
  10. Gradle part1 HelloWorld
  11. IBase<T>
  12. SpringCloud-day08-Hystrix断路器
  13. ajax---获取XMLHttpReuquest 对象
  14. tkinter简单打开网址 + 执行系统命令
  15. word-break:break-all; 和 word-wrap:break-word 换行
  16. ssh基础配置大全
  17. HDU 4763 Theme Section(KMP+枚举公共前后缀)
  18. unity 获得子节点
  19. 蓝桥杯 生命之树【树状dp】
  20. linux 命令绿色安装

热门文章

  1. python运行原理/python解释器
  2. vue实现简单在线聊天
  3. 将字符串顺序重新排序DOM节点
  4. python之IO model
  5. 【Maven】maven的常用命令以及搭建maven私人仓库
  6. Python - 字符和字符值之间的转换
  7. PHP:过滤数组中为空的值,并将返回的数组使用数值键,从 0 开始并以 1 递增
  8. [Atcoder Grand Contest 004] Tutorial
  9. 【思路】Aizu - 1367 - Rearranging a Sequence
  10. 【数论】【欧拉函数】CDOJ1724 为了我们心爱的京电