JUnit简介
是一个已经被多数Java程序员采用和实证的优秀的单元测试框架
思想:先写测试,后写代码
我们在日常开发中,需求改变是很经常的,改变一些地方有时候会引起其他地方的错误。如果有了测试,并已经建立了一个好的测试框架,对于需求的变动,修改完代码后,只要重新运行测试代码,如果测试通过,也就保证了修改的成功,如果测试中出现错误,也会马上发现错在哪里。修改相应的部分,再运行测试,直至测试完全通过。
JUnit由六个包组成
分别是Framework、Extensions、Runner、Awtui、Textui和Swingui,前三个包是构建包,后三个包是表现层包
Junit的安装和配置
大致分为四步 :(卸载则只需去掉配置的CLASSPATH值)
1、首先将Junit压缩包解压到一个物理目录中(如d:\Junit)
2、记录Junit.jar文件所在的目录名
3、设置系统环境变量CLASSPATH的值(如d:\Junit\Junit.jar)
4、调出命令窗口,输入以下内容,测试是否添加成功
java junit.swingui.TestRunner 或java junit.textui.TestRunner
JUnit编写测试代码的一般步骤
(1)引入JUnit框架包。import junit.framework.*
(2)测试类继承JUnit的TestCase类。
(3)实现类的main()方法,在main()方法中简单调用junit.textui.TestRunner.run(SimpleTest.class)来指定执行测试类。
(4)重载setUp()和tearDown()方法,setUp()方法用于执行每个测试用例时进行环境的初始化工作
(比如打开数据库连接),tearDown()方法用于执行每个测试用例后清除环境(比如关闭数据库连接)。
(5)编写每个测试用例,写一些testXXXX()方法(一般是在要测试的方法前附加test)
import junit.framework.TestCase; public class TestClass2 extends TestCase { Account a = new Account("测试1", 1); Account b = new Account("测试2", 2); public static void main(String args[]) { junit.textui.TestRunner.run(TestClass2.class);//使用文本交互模式显示测试过程 //junit.swingui.TestRunner.run(TestClass2.class);//使用图形交互模式显示测试过程 } public void testAccount() { assertEquals("测试11", a.getStr());//断言方法 assertEquals(1, a.getNum()); assertEquals("测试2", b.getStr()); assertEquals(2, b.getNum()); } } class Account { String str; int num; public Account(String str, int num) { this.str = str; this.num = num; } public String getStr() { return str; } public int getNum() { return num; } }
扩展:测试包test suite
所谓测试包(test suite)其实就是同一会话中应当执行的测试集合。
测试包把测试组织在一起执行,而不论测试是否在同一文件里。
测试包的使用例子:
import junit.framework.TestCase; import junit.framework.TestSuite; public class TestClass2 extends TestCase { public static TestSuite suite() { TestSuite t = new TestSuite();//创建TestSuite测试包 t.addTest(new HelloWorldTest("testSayHello"));//添加测试 t.addTest(new SimpleTest("testTest")); t.addTestSuite(TestRunner.class); return t; } public static void main(String args[]) { junit.textui.TestRunner.run(suite()); } }
Android中使用JUnit,参考资料
http://www.weebly.com/uploads/4/2/3/2/4232910/android-junit.pdf