Junit提供 单元测试,多组参数的单元测试,打包单元测试。

比如你写了一个Calculator类:

package test_junit;

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;
}
}

写完了想测试下:

选择想测试的类右键new,junit,选择想测试的方法

生成一个test类,把这个测试类补充完整:

package test_junit;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; public class CalculatorTest { private static Calculator calculator = new Calculator(); @AfterClass
public static void tearDownAfterClass() throws Exception {
} @Before
public void setUp() throws Exception {
} @After
public void tearDown() throws Exception {
} @Test
public void testAdd() {
calculator.add(2);
calculator.add(3);
assertEquals(5, calculator.getResult());
// fail("Not yet implemented");
} @Ignore
public void testSubstract() {
calculator.clear();
calculator.add(10);
calculator.substract(2);
assertEquals(8, calculator.getResult());
} @Test
public void testMultiply() {
// fail("Not yet implemented");
} @Test
public void testDivide() {
calculator.clear();
calculator.add(8);
calculator.divide(2);
assertEquals(4, calculator.getResult());
} @Test(timeout = 12)
public void testSquareRoot() { calculator.squareRoot(8); // assertEquals(4,calculator.getResult());
} //@Test(expected = ArithmeticException.class)
@Test
public void divideByZero() {
calculator.divide(0); }
}

运行下这个类,就可以看到可视化对错的效果。

如果这个类的某个方法有多组测试数据,那么可以这么写。

package test_junit;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Test; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import java.util.Arrays; import java.util.Collection; @RunWith(Parameterized.class)
public class CalculatorTest2 { private static Calculator calculator = new Calculator(); private int param; private int result; @Parameters
public static Collection data() { return Arrays.asList(new Object[][] { { 2, 4 }, { 0, 0 }, { -3, 9 }, }); } // 构造函数,对变量进行初始化 public CalculatorTest2(int param, int result) { this.param = param; this.result = result; } @Test
public void square() { calculator.square(param); assertEquals(result, calculator.getResult()); } }

这时,你可能已经写了十来个测试类了,但是一个一个是比较麻烦的,这时多重选择想要的那几个测试类,右键new ->junit -> Junit Test Suits就可以打包了。

package test_junit;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class)
@SuiteClasses({ CalculatorTest.class, CalculatorTest2.class })
public class AllTests { }

直接运行这个类就可以一起测试了。

参考:http://blog.csdn.net/andycpp/article/details/1329218

Junit进行单元测试的更多相关文章

  1. java如何使用JUnit进行单元测试

    注:所有内容都是在eclipse上实现,关于eclipse的安装和jdk的安装配置,请看:http://www.cnblogs.com/fench/p/5914827.html 单元测试是什么? 百度 ...

  2. JUnit 4 单元测试

    Individual Project ——JUnit 4 单元测试 学习到JUnit单元测试,我拿来测试之前写过的一个计算器(两个依存类:Calc.java CalcFunction.java).代码 ...

  3. Android之如何使用JUnit进行单元测试

    转的:http://www.blogjava.net/qileilove/archive/2014/05/19/413824.html Android中如何使用JUnit进行单元测试 在我们日常开发a ...

  4. 使用Spring配合Junit进行单元测试的总结

    最近公司的项目和自己的项目中都用到了spring集成junit进行单元测试,总结一下几种基本的用法: 1.直接对spring中注入的bean进行测试(以DAO为例): 在测试类上添加@RunWith注 ...

  5. Spring(3)—— Junit框架单元测试

    Junit主要用于单元测试,即白盒测试.它是一个开源的由JAVA开发的一个用于测试的框架. Junit的几个基本概念:TestCase,TestSuite,TestFixtrue TestCase:代 ...

  6. JUnit + Mockito 单元测试(二)

    摘自: http://blog.csdn.net/zhangxin09/article/details/42422643 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 入门 ...

  7. spring junit 做单元测试,报 Failed to load ApplicationContext 错误

    spring junit 做单元测试,报 Failed to load ApplicationContext 错误. 查找了好一会,最后发现.@ContextConfiguration(locatio ...

  8. 使用 JUnit 进行单元测试 - 教程

    tanyuanji@126.com 版本历史 JUnit 该教程主要讲解 JUnit 4.x 版本的使用,以及如何在Eclipse IDE 中如何使用JUnit   目录 tanyuanji@126. ...

  9. JUnit + Mockito 单元测试(二)(good)

    import org.junit.Test; import org.mockito.Matchers; import org.mockito.Mockito; import java.util.Lis ...

  10. 使用Junit进行单元测试

    使用Junit进行单元测试 一.目的和要求 JUnit是一款由Erich Gamma(<设计模式>的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人 ...

随机推荐

  1. ASE加解密算法详细介绍

    AEC扫盲主要增对CBC模式做详细讲解: https://blog.csdn.net/qq_28205153/article/details/55798628 AEC其他几种模式详细介绍 https: ...

  2. 吐血推荐:罗马尼亚无版权VPS服务商HostSolutions评测-绝对真实

    要放心大胆的玩 VPS,要找性价比高.信用好,服务稳定,限制少的服务商是很不容易的.这里我先点几个黑名单:第一类 HiFormance.VirMach 低价流 VPS 服务商,以低从吸引消费者.俗话说 ...

  3. 1011 A+B 和 C

    给定区间  [-2^31, 2^31] 内的 3 个整数 A.B 和 C,请判断 A+B 是否大于 C. 输入格式: 输入第 1 行给出正整数 T (≤10),是测试用例的个数.随后给出 T 组测试用 ...

  4. sonarqube 代码检查

    再好的程序员也会出bug,所以代码检查很有必要.今天就出一个简单的检查工具代替人工检查. 参考: http://www.cnblogs.com/qiaoyeye/p/5249786.html 环境及版 ...

  5. 隔行扫瞄/逐行扫瞄的介绍(Interlaced / Progressive)

    隔行扫瞄/逐行扫瞄的介绍(Interlaced / Progressive)   本篇不是着重在理论说明, 而是实际验証结果的分享, 所以只简略解释何谓交错与非交错, 请参考如后. 交错扫瞄(隔行扫瞄 ...

  6. 前端开发 —— google chart 的使用

    1. 引入所需的 js 库 在 <head></head>中 <script src="https://ajax.googleapis.com/ajax/lib ...

  7. AppStore 中的app怎么样生成二维码,来提供下载

    首先在:iTunes里面找到  AppStore模块,然后搜索你的 App 在App 下载选项有 Copy Link ,拷贝地址 在二维码生成器里直接生成二维码就,OK 如果,想要多个和安卓做一个二维 ...

  8. CodeForces - 1098.DIV1.C: Construct a tree(贪心,构造)

    Misha walked through the snowy forest and he was so fascinated by the trees to decide to draw his ow ...

  9. js窗口拖动 模版

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  10. 51Nod 1079:中国剩余定理

    1079 中国剩余定理  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K.例如,K % ...