java测试方法:Junit 和 TestNG

java测试方法:Junit 和 TestNG

  开发过程中,经常会用到测试,前端javascript的调试相对比较轻松,firebug,console.log()等,但是java的就比较纠结点,每次改完都要去编译再运行,过程相对缓慢,加上如果项目比较大的话,就非常DT,有听朋友说他们公司的项目是用EJB,开发的时候每次做个小修改就要花费几分钟去重新部署在服务器上。为了减轻调试的过程,提高开发效率,一些专门用于测试框架出现了,典型的就是Junit和TestNG,下面主要是简单介绍如何使用这两个工具以及他们的区别在哪,纯属入门级别的简介。

  Junit

  这个估计大家比较熟悉,目前发展到Junit4版本了,通过简单的注解就可以进行代码的测试,常用的有@Test,@Before,@After;@Test注解的方法是我们要测试的方法,@Before就是执行@Test的方法前的操作,我个人一般用来做初始化工作,@After就是@Test的方法运行完后的操作,看起来有点像AOP的注解,呵呵。

准备工作:导入Junit 4的jar包,运行的时候,点击右键,Run as ,选择“Junit Test”即可。

  局限性:没有提供带参数执行的操作(不知新版本有木有,我个人至今没发现),当然,你可以采用@Before来做一些初始化工作,这里可以初始化我们要测试的数据。

  贴断测试demo代码:

1 import org.junit.Before; 2 import org.junit.Test; 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.context.ApplicationContext; 5 import org.springframework.context.support.ClassPathXmlApplicationContext; CaculatorService { 8 @Autowired 9private Caculator caculator;1011 @Before inti(){13ApplicationContext applicationContext=new ClassPathXmlApplicationContext(“annotationBeans.xml”);14this.caculator=(Caculator)applicationContext.getBean(“caculator”);15 }1617 @Test getShopSum(){19caculator.caculateSum(3, 8);20 }2122@Test(expected=Exception.class) divOperation(){24caculator.caculateDiv(23, 0);25 }26 }

TestNG:

  这个测试框架跟Junit差不多,但是有一点就是跟Junit不同的是,对数据驱动测试的内建支持,讲人话就是,可以@Test的方法可以是带有参数的,这也是它最闪亮的功能之一。它也有类似的注解:@Test、@BeforeMethod,还有一个@DataProvider,就是数据提供者,不理解看看代码就清楚了。

  准备工作:TestNG的前期准备工作其实够呛的,网上一大堆说法,折腾了一段时间,终于成功了。具体的过程:myeclipse的是 点击 help->Eclipse MarketPlace… –>search:输入 testNG,找到TestNG,点击 Install,安装的过程灰常纠结,网速慢加上貌似下载插件的站点被墙了(你懂得,翻墙就不说了)。安装好之后,重启,导入TestNG的jar包:testng-jdk15.jar,不用自己再去下载,自己直接在myeclipse导入就可,找一个有@Test的类,右键 Run as ,可以看到有“TestNG Test” 选项,恭喜你,成功了。

  与Junit的区别在于,,我认为主要在于测试数据的内建支持,可以让我们针对带有参数的方法进行单元测试。此外,构建测试测过程要配置相关的xml文件,声明是针对那个类哪个方法进行测试,具体请看代码。

  测试demo代码:

1 package com.lcy.test.testNG; org.testng.annotations.BeforeMethod; 4 import org.testng.annotations.DataProvider; 5 import org.testng.annotations.Test; CaculatorService { Caculator caculator;10 @BeforeMethod inti(){12System.out.println(“初始化”);13this.caculator=new Caculator();14 } 15@DataProvider(name=”firstData”)16public Object[][] createObject(){Object[][]{new Object[]{23,5}};18 }1920@Test(dataProvider=”firstData”)getSum(int input, int num){22 caculator.caculateSum(input, num);23 }24 }

配置文件:temp-testng-customsuite.xml

具体的深一步的操作请参看TestNG的官方文档,本文主要是入门介绍,不对之处,请多多指出,谢谢。

具体的代码已经传上github,需要的童鞋可以去下载看看:https://github.com/kevinYin/springTest,个人建议还是自己亲自敲一遍比较有效。

posted on

却只能这样。只有对爱的人,我们才会斤斤计较,锱铢必较。

java测试方法:Junit 和 TestNG

相关文章:

你感兴趣的文章:

标签云: