当前位置: 首页 > news >正文

seo01网站红酒网站建设

seo01网站,红酒网站建设,wordpress 导航主题,wordpress i18njunit testng多年以来#xff0c;无论何时使用Java代码进行单元测试#xff0c;我始终会回到TestNG。 每当我拿起TestNG时#xff0c;人们都会问我为什么要继续使用TestNG#xff0c;尤其是默认开发环境#xff08;例如Eclipse或Maven#xff09;提供的JUnit时。 继续进行… junit testng 多年以来无论何时使用Java代码进行单元测试我始终会回到TestNG。 每当我拿起TestNG时人们都会问我为什么要继续使用TestNG尤其是默认开发环境例如Eclipse或Maven提供的JUnit时。 继续进行同样的战斗昨天我开始研究Spring的测试支持 。 它还建立在JUnit之上。 但是在使用相同功能的几分钟后我一直在寻找JUnit中一直找不到的功能。 TestNG使用DataProviders提供参数化测试 。 考虑到我再次问自己一个熟悉的问题– TestNG或JUnit我决定对此进行记录以便下次可以确定是哪个以及为什么。 基本上一样 如果您只是要进行一些基本的单元测试那么这两个框架基本上是相同的。 这两个框架都允许您快速有效地测试代码。 他们在Eclipse和其他IDE中具有工具支持。 他们还在Ant和Maven等构建框架中获得了支持。 对于初学者来说JUnit一直是首选因为它是第一个用于单元测试的框架并且一直可用。 我谈论的许多人直到我们谈论它之前都没有听说过TestNG。 灵活性 让我们来看两个简单的测试用例。 package com.kapil.itrader; import java.util.Arrays; import java.util.List; import junit.framework.Assert; import org.junit.BeforeClass; import org.junit.Test;public class FibonacciTest {private Integer input;private Integer expected;BeforeClasspublic static void beforeClass(){// do some initialization}Testpublic void FibonacciTest(){System.out.println(Input: input . Expected: expected);Assert.assertEquals(expected, Fibonacci.compute(input));assertEquals(expected, Fibonacci.compute(input));} } 好吧这是示例展示我正在使用4.x 版本并且正在使用注释。 优先于4.0版本 JUnit不支持注释这是TestNG相对于竞争对手的主要优势 但是JUnit很快就适应了。 您可能会注意到JUnit还支持静态导入并且像以前的版本一样我们可以省去更多麻烦的代码。 package com.kapil.framework.core; import junit.framework.Assert; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test;public class BaseTestCase {protected static final ClassPathXmlApplicationContext context;static{context new ClassPathXmlApplicationContext(rootTestContext.xml);context.registerShutdownHook();}BeforeSuiteprivate void beforeSetup(){// Do initialization}Testpublic void testTrue(){Assert.assertTrue(false);} } 首先看一下这两个代码可以推断两者几乎相同。 但是对于那些已经完成足够的单元测试的人我会同意TestNG可以提供更大的灵活性。 JUnit要求我将初始化方法声明为static 因此我将在该方法中编写的任何内容也必须是静态的。 JUnit还要求我将初始化方法公开。 但是TestNG不会。 我也可以在测试课程中使用OOP的最佳做法。 除了 BeforeClassTestNG还允许我声明测试套件组方法并使用 BeforeSuite BeforeMethod BeforeGroups之类的批注。 当编写需要访问公共数据集的任何级别的集成测试或单元测试用例时这非常有用。 测试隔离和依赖性测试 在进行隔离测试时Junit非常有效。 从本质上讲这意味着您无法控制测试的执行顺序。 并且因此如果由于某种依赖关系而有两个要按特定顺序运行的测试则无法使用JUnit进行。 但是TestNG允许您非常有效地执行此操作。 在Junit中您可以解决此问题但它并不整齐也不那么容易。 基于参数的测试 TestNG提供的一个非常强大的功能是“参数化测试”。 JUnit在4.5版本中为此添加了一些支持但是它不如TestNG有效。 您可能与FIT合作过您会知道我在说什么。 但是JUnit中添加的支持非常基础并且效果不佳。 我已经修改了我以前的测试用例以包括参数化测试。 package com.kapil.itrader;import static org.junit.Assert.assertEquals;import java.util.Arrays; import java.util.List;import junit.framework.Assert;import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters;RunWith(Parameterized.class) public class FibonacciTest {private Integer input;private Integer expected;Parameterspublic static List data(){return Arrays.asList(new Integer[][] { { 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 } });}BeforeClasspublic static void beforeClass(){System.out.println(Before);}public FibonacciTest(Integer input, Integer expected){this.input input;this.expected expected;}Testpublic void FibonacciTest(){System.out.println(Input: input . Expected: expected);Assert.assertEquals(expected, Fibonacci.compute(input));assertEquals(expected, Fibonacci.compute(input));}} 您会注意到我已经使用RunWith批注来对测试用例进行参数化。 在这种情况下将使用已用Parameters注释的内联方法– data将数据提供给该类。 但是最大的问题是将数据传递给类构造函数。 这使我只能在此类中编写逻辑绑定的测试用例。 而且我最终将对一个服务拥有多个测试用例因为该服务中的所有各种方法都需要不同的数据集。 好消息是有各种开放源代码框架扩展了此方法并添加了自己的“ RunWith”实现以允许与CSVHTML或Excel文件等外部实体集成。 TestNG提供了开箱即用的支持。 不支持读取CSV或外部文件但支持数据提供程序。 package com.kapil.itrader.core.managers.admin;import org.testng.Assert; import org.testng.annotations.Test;import com.uhc.simple.common.BaseTestCase; import com.uhc.simple.core.admin.manager.ILookupManager; import com.uhc.simple.core.admin.service.ILookupService; import com.uhc.simple.dataprovider.admin.LookupValueDataProvider; import com.uhc.simple.dto.admin.LookupValueRequest; import com.uhc.simple.dto.admin.LookupValueResponse;/*** Test cases to test {link ILookupService}.*/ public class LookupServiceTests extends BaseTestCase {Test(dataProvider LookupValueProvider, dataProviderClass LookupValueDataProvider.class)public void testGetAllLookupValues(String row, LookupValueRequest request, LookupValueResponse expectedResponse){ILookupManager manager super.getLookupManager();LookupValueResponse actualResponse manager.getLookupValues(request);Assert.assertEquals(actualResponse.getStatus(), expectedResponse.getStatus());} } 上面的代码片段展示了我已经将dataProvider用作批注的值然后提供了一个类该类负责创建在调用时提供给方法的数据。 使用这种机制我可以轻松地以分离的方式编写测试用例及其数据提供程序并非常有效地使用它。 为什么我选择TestNG 对我来说参数化测试是我选择TestNG而不是Junit的最大原因。 但是上面列出的所有内容都是为什么我总是要花几分钟的时间在新的Eclipse安装程序或maven项目中设置TestNG的原因。 当运行大型测试套件时TestNG非常有用。 对于小型项目或培训活动JUnit很好 因为任何人都可以很快开始使用它 但不适用于我们需要数千个测试用例的项目并且在大多数测试用例中您将涵盖各种方案。 参考 Scratch Pad博客上来自我们的JCG合作伙伴 Kapil Viren Ahuja的TestNG或JUnit 。 翻译自: https://www.javacodegeeks.com/2012/01/testng-or-junit.htmljunit testng
http://www.pierceye.com/news/840183/

相关文章:

  • 北京做网站价格如何知道一个网站是用什么做的
  • 海外域名网站国外做多媒体展览的网站
  • 阿里 网站建设方案书 模板wordpress影视模版
  • 广西网站建设工具网站推广方法主要有哪些
  • 源码购买网站郑州新一网站建设
  • 大学生网站设计论文范文某集团网站建设规划书
  • 温州哪里有网站建设深圳关键词首页排名
  • 做网站用什么面板好网站建设网站公司
  • 寻求网站建设技术网页升级访问永久你懂的
  • 做网站的公司有多少家无后台基础怎么建设网站
  • 在公司做网站是什么职位有链接的网站怎么做
  • 手机网站开发前台架构专业群建设网站
  • 做网站设计怎么样网站ui怎么做的
  • 企业网站用织梦好吗ui培训的课程都有哪些
  • 临沂专业网站建设公司哪家好做网站的照片要多大像素
  • 山东滕州做网站技术电话wordpress网页登陆
  • 做公司网站的费用flash交互网站页面切换制作
  • 网络推广渠道有哪些百度手机seo
  • 重庆专业网站建设公司哪家好seo的中文意思是什么
  • 做品牌折扣微信推广的网站网站换主机换域名
  • 营销型网站有哪些建设流程怎样制作免费的网站
  • 天津建设工程计价网站手工加工网
  • 温州做美食网站网站建设的方案模板下载
  • 如何快速网站备案以用户为中心 建设学校网站
  • 宣传型网站有哪些宁波建设信息港网站
  • php网站开发是做什么的phpcms v9企业网站模板(简洁利于优化)
  • 什么是网站和网页wordpress启用插件出错
  • asp网站制作工具怎么样做国际网站生意
  • 签订网站建设合同山东建设工程招标网官方网站
  • 迅速建设企业网站外贸网站服务器选择