黑马程序员----JAVA基础之junit测试框架
2013-04-28 20:31
387 查看
------ android培训、java培训、期待与您交流!----------
junit测试框架一、junit测试框架简述JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。二、junit测试框架的用途可以让我们在编写代码的过程中,可以不断进行测试,而不需要主方法,且可以在方法测试前后都加上要执行的方法,也可以在这个类测试前后都加上要执行的代码,用于启动一些测试方法前都需要的条件,及放于测试后常用于释放资源.并且,可以断言测试,也就是测试一个方法是否可以得到你想要的返回值.三、junit测试框架的使用1.测试一个方法是否正常import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;//导入Junit包public class Test15 {@Test//加注解,表示把程序交给Junit运行.public void print() {char c =(char)65;System.out.println(c);}}2.在每个方法测试前后都运行自定义方法.
char c;@Before//方法运行前先执行的方法public void before(){c =(char)65;} @Test//加注解,表示把程序交给Junit运行.public void print() {System.out.println(c);}@After//方法运行后void after(){System.out.println("after");}3.在类加载前后运行,注意:都要是static
static char c;@BeforeClass //只类加载前运行一次public static void before(){c =(char)65;}@Test//加注解,表示把程序交给Junit运行.public void print() {System.out.println(c);}@AfterClass//类加载后运行一次public static void after(){System.out.println("after");}4.断言判断某个方法的结果是不是你想要的,第一个参数表示你期望的结果.有好多方法,例:
@Testpublic void test() {Print p = new Print();//断言 判断某个方法的结果是不是你想要的,第一个参数表示你期望的结果.有好多方法,这例如Assert.assertEquals("a", p.print());}}class Print{public String print(){return "a";}}测试方法运行的时间@Test(timeout=200)public void testFindUser() {//以下进行多次断言,判断各种情况下是否准确User user=dao.findUser("张三", "123");assertNotNull(user);user=dao.findUser("张三", "22");assertNull(user);user=dao.findUser("22", "123");assertNull(user);user=dao.findUser("22", "13");assertNull(user);}四、junit测试框架何时使用在编写程序的时候,我们为了减少发后的维护压力,让代码边编写边测试.五、junit测试框架的特点(1) 不要用TestCase的构造函数初始化Fixture,而要用setUp()和tearDown()方法。 (2)不要依赖或假定测试运行的顺序,因为JUnit利用Vector保存测试方法。所以不同的平台会按不同的顺序从Vector中取出测试方法。 (3)避免编写有副作用的TestCase。例如:如果随后的测试依赖于某些特定的交易数据,就不要提交交易数据。简单的回滚就可以了。 (4) 当继承一个测试类时,记得调用父类的setUp()和tearDown()方法。 (5)将测试代码和工作代码放在一起,一边同步编译和更新。(使用Ant中有支持junit的task.)(6)测试类和测试方法应该有一致的命名方案。如在工作类名前加上test从而形成测试类名。 (7)确保测试与时间无关,不要依赖使用过期的数据进行测试。导致在随后的维护过程中很难重现测试。 (8)如果你编写的软件面向国际市场,编写测试时要考虑国际化的因素。不要仅用母语的Locale进行测试。 (9)尽可能地利用JUnit提供地assert/fail方法以及异常处理的方法,可以使代码更为简洁。 (10)测试要尽可能地小,执行速度快。 (11)不要硬性规定数据文件的路径。 (12)利用Junit 的自动异常处理书写简洁的测试代码 事实上在Junit 中使用try-catch 来捕获异常是没有必要的,Junit 会自动捕获异常。那些没有被捕获的异常就被当成错误处理。 (13)充分利用Junit 的assert/fail 方法.assertSame()用来测试两个引用是否指向同一个对象.assertEquals()用来测试两个对象是否相等(14). 确保测试代码与时间无关
------ android培训、java培训、期待与您交流!----------
相关文章推荐
- java基础之junit测试框架
- JavaWeb学习笔记-java基础-1-测试框架junit
- Java基础加强---junit测试框架
- (黑马程序员)Java基础加强(第一天)4.Junit测试框架
- 黑马程序员-----------JAVA基础---------集合框架工具类
- 黑马程序员——Java基础--集合框架工具类:Collections、Arrays、其他对象
- 黑马程序员——java基础(集合框架)速查手册
- 黑马程序员_java基础6-集合框架Collection和泛型
- 黑马程序员——Java重点基础之集合框架(一)
- 黑马程序员——JAVA基础------集合框架(二)----Set接口
- 黑马程序员——java基础——集合框架(二)
- 黑马程序员--java 基础之集合框架-----05
- 黑马程序员——Java基础之集合框架
- 黑马程序员——Java基础—集合框架(一)
- 黑马程序员--Java基础--集合框架
- Java测试框架比较:TestNG VS JUnit 4
- 怎样选择Java测试框架 JUnit还是TestNG?
- 黑马程序员_Java基础_集合框架成员Map
- 黑马程序员_Java基础_集合框架工具类
- 黑马程序员__java基础__反射(数组、框架)