Junit元测试
单元测试(junit testing),是指对软件中的最小可测试单元进行检查和验证。Java里单元指一个类。
JUnit ,是一个开源的Java单元测试框架,是 Java的标准单元测试库,是非常重要第三方 Java 库,由 Kent Beck 和 Erich Gamma 开发。
Junit作为一个软件测试的工具,JUnit可以不破坏java原代码,使用方便,添加快捷,代码量少,可视化的测试。
JUnit单元测试步骤:
1.导入包junit测试包:JUnit测试版本,3.81版,4.0版,导入对应的jar包;
2.写一个类扩展(继承)TestCase;
3.在需要测试的方法名前加test生成新的测试方法;
4.运行测试,用断言(assert***)的方法测试成功(显示绿色)或失败(显示红色),或者自己判断结果正确与否。
Unit3.81与JUnit4.0区别:
1.在 JUnit 4 中,测试是由 @Test 注释来识别的;
2.Unit 3.81 测试运行程序时会在运行每个测试之前自动调用 setUp() 方法,在JUnit4.0中,要用 @Before 注释;
3.在 JUnit 3.81 中,测试运行程序时会在运行每个测试之前自动使用 tearDown() 方法清除消耗的资源,在JUnit4.0中,用 @After 注释。
注意:如果需测试的方法没有返回值,只能测试其过程。
JUnit4新特性:
1.属于类范围的 setUp()方法 和 tearDown() 方法,任何用 @BeforeClass 注释的方法都将在该类中的测试方法运行之前运行一次,而任何用 @AfterClass 注释的方法都将在该类中的所有测试都运行之后运行一次;
2.异常测试:编写抛出异常的代码,并使用注释来声明该异常是预期的;
3.在需要高效率的测试中,有些代码测试你认为可以跳过,这类测试可以被注释为 @Ignore
4.时间测试可以用超时参数来注释,如果测试的运行时间超过指定的毫秒数,测试失败。
5.增加两个新的断言方法:
(1)public static void assertEquals(Object[] expected, Object[] actual)
(2)public static void assertEquals(String message, Object[] expected, Object[] actual) 这两个方法用来比较数组:如果数组长度相等且对应的元素相同,则这两个数组相等,否则不等,也考虑了数组为空的情况。
junit类(Mul)单元测试:
package com.myhome; public class Mul{ public int mul(int x,int y) { public int mul(int x,int y) { return x*y; } public double divide(double x,double y){ return x/y; } }
用myeclipse集成开发环境添加jar包和junit测试支持:
1.如果没有就在new菜单最下边Other……中(或Ctrl+N),输入junit选择JUnit Test Case单元测试:
2.选择JUnit 3 Test测试:
3.选择要测试的方法:
4.此时会自动导入jar包(junit3或者junit4需要的jar包),
5.程序目录结构:
6.此时的测试类为:
package com.myhome.test; import junit.framework.TestCase; public class MulTest extends TestCase { public void testMul() { fail("Not yet implemented"); } public void testDivide() { fail("Not yet implemented"); } }
测试内部方法体:
public void testMul() { Mul mul = new Mul(); int res = mul.mul(2, 4); System.out.println(res); } public void testDivide() { Mul mul = new Mul(); double res = mul.divide(8.0, 2.0); assertEquals(4.0, res); }
效果图: