TestNG说Junit的区别

TestNG和Junit的区别,测试框架该如何选择? 阅读详情

1.1 TestNG与JUnit的相同点:

  1. 使用annotation,且大部分annotation相同。
  2. 都可以进行单元测试(Unit test)。
  3. 都是针对Java测试的工具。

1.2 TestNG与JUnit的不同点:

  1. JUnit只能进行单元测试,TestNG可以进行单元测试,功能测试,端到端测试,集成测试等,主要是因为testNG存在depends可以进行测试用例的组合;
  2. TestNG需要一个额外的xml配置文件,配置测试的class、method甚至package。
  3. TestNG的运行方式更加灵活:命令行、ant和IDE,JUnit只能使用IDE。TestNG有自己的命令行执行方式。
  4. TestNG的annotation更加丰富和易懂,比如@ExpectedExceptions、@DataProvider等。
  5. 测试套件运行失败,JUnit 4会重新运行整个测试套件。TestNG运行失败时,会创建一个XML文件说明失败的测试,利用这个文件执行程序,就不会重复运行已经成功的测试。

1.3 TestNG比JUnit 4灵活性的体现:

  1. JUnit 4中必须把@BeforeClass修饰的方法声明为public static,这就限制了该方法中使用的变量必须是static。而TestNG中@BeforeClass修饰的方法可以跟普通函数完全一样。
  2. JUnit 4测试的依赖性非常强,测试用例间有严格的先后顺序。前一个测试不成功,后续所有的依赖测试都会失败。TestNG 利用@Test 的dependsOnMethods属性来应对测试依赖性问题。某方法依赖的方法失败,它将被跳过,而不是标记为失败。
  3. 对于n个不同参数组合的测试,JUnit 4要写n个测试用例。每个测试用例完成的任务基本是相同的,只是受测方法的参数有所改变。TestNG的参数化测试只需要一个测试用例,然后把所需要的参数加到TestNG的xml配置文件中。这样的好处是参数与测试代码分离,非程序员也可以修改参数,同时修改无需重新编译测试代码。
  4. 为了测试无法用String或原语值表示的复杂参数化类型,TestNG提供的@DataProvider使它们映射到某个测试方法。
  5. JUnit 4的测试结果通过Green/Red bar体现,TestNG的结果除了Green/Red bar,还有Console窗口和test-output文件夹,对测试结果的描述更加详细,方便定位错误。

1.定义测试任务

Junit中要定义测试任务是要写TestSuit的,居然要写硬编码,而TestNG全部写在testng.xml(名字可以自定义的)中的,然后可以通过ant来调用。

2.测试参数化

Junit是不带任何参数的,不论是测试方法还是配置方法,而TestNG都是可以添加参数的,有2种方法


  1. public class TestNGTest6_1_0 {            
  2.        <span style="white-space:pre">   </span>@Test  
  3.        <span style="white-space:pre">   </span>@Parameters(value="number")  
  4.        public void parameterIntTest(int number) {  
  5.           System.out.println("Parameterized Number is : " + number);  
  6.        }                                                 
  7.  }  
然后,在我们的Testng.xml文件中,我们把参数的具体值设置进来,如下:

  1. <!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >  
  2. <suite name="My test suite">  
  3.   <test name="testing">                       
  4.     <parameter name="number" value="2"/>   
  5.     <classes>  
  6.        <class name="com.fsecure.demo.testng.TestNGTest6_0" />  
  7.     </classes>  
  8.   </test>  
  9. </suite> 

3.测试依赖性

对于JUnit 来说,所有的测试彼此之间都是独立的,毫无依赖性。

但是对于 TestNG来说,我们完全可以让测试彼此之间有依赖性,做法就是dependsOnMethods属性来标识一个被依赖的测试方法:









TestNG vs JUnit:Java集成测试框架的“生死对决“——当百万级用例在深夜崩溃时,谁才是真正的“代码保镖“? TestNG的依赖链是’神经反射弧’,JUnit的依赖是’硬接线’”“TestNG的XML是’战争指挥所’,JUnit的注解是’散兵坑’”“TestNG的分布式是’真实战场’,JUnit的模拟是’沙盘推演’”“TestNG的断言是’智能显微镜’,JUnit的断言是’肉眼观察’”“TestNG的插件是’先天基因’,JUnit的集成是’后天移植’”“TestNG的GC是’量子压缩’,JUnit的内存是’传统存储’”“TestNG的AI是’共生体’,JUnit的AI是’外部附着’”这就是框架选择的生死抉择! 阅读详情

相关推荐

Java 单元测试框架比较:JUnit、TestNG 哪个更适合你?

在 Java 单元测试中,JUnit 和 TestNG 是两个主流框架,各有特点。JUnit 以简单易用著称,适合基础测试场景,支持参数化测试但实现较为繁琐。TestNG 则功能更强大,支持复杂的测试场景,如参数化测试、依赖测试等,且实现更为简洁。TestNG 还提供了丰富的生命周期注解,能够更精细地控制测试流程。总体而言,JUnit 适合简单项目,而 TestNG 更适合复杂测试需求。开发者应根据项目需求选择合适的框架。

shrgegrb的博客 1395

TestNG和Junit的区别

TestNG和Junit 测试是检查应用程序的功能的过程是否按要求工作,以确保在开发层面,单元测试成图片。单元测试是单一实体(类或方法)的测试。单元测试是非常必要的,每一个软件公司向他们的客户提供高质量的产品。JUnit 带动开发人员了解测试的实用性,尤其是单元测试的时候比任何其他测试框架。凭借一个相当简单,务实,严谨的架构,JUnit已经能够“感染”了一大批开发人员。 JUnit的特点,可以看看Junit 缺点: 最初的设计,使用于单元测试,现在只用于各种测试 不能依赖测试 配置控制欠佳(安装/拆

renxingzhadan的专栏 2078

追求代码质量:Junit4与TestNG的对比

本文介绍了JUnit 4并不是第一个提供基于注释的灵活模型的Java:trade_mark:测试框架。在修改JUnit之前很久TestNG 就已建立为一个基于注释的框架。事实上,是TestNG在Java编程中率先 实现了利用注释进行测试,这使它成为JUnit的有力竞争对手。本文还讨论TestNG不同于JUnit 4的一些特性,并提议采用一些方法,使得这两个框架能继续互相补充,而不是互相竞争。

junit 和 testNG的区别

一、junit 和 testNG的区别 1.Junit是什么?          JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。[1-2]  JUn

qq_37061799的博客 1917

用Origin快速拟合荧光寿命、PL Decay (TRPL)数据分析处理

用Origin快速拟合荧光寿命、PL Decay (TRPL)数据分析处理

A20802013的博客 2万+

ADS2020实战:村田电感.s2p与.mod文件导入全流程对比(附仿真结果差异分析)

本文详细对比了ADS2020中村田电感的.s2p与.mod文件导入流程及仿真结果差异,重点分析了两种模型在低频段和高频段的精度表现。通过实际案例展示.s2p文件在高频仿真中的优势,以及.mod文件在低频和非线性特性模拟中的准确性,为射频电路设计提供模型选择策略和混合仿真技巧。

weixin_29289821的博客 519

Junit和testng的区别

什么是Junit (1)JUnit是一个Java语言的单元测试框架(它由Kent Beck和Erich Gamma建立)  (2)Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能 (3)Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。 什么是testng TestNG,即

Blessed_的博客 884

similarity network fusion for aggregating data types on a genomic scale

基因组规模上的聚合数据类型的相似性网络融合 摘要:         近期的技术已经使收集不同类型的全基因组数据十分划算,结合这些数据去创建一个给定的疾病或生物过程的一个全面视图的计算方法是有必要的。相似网络融合(SNF:similarity network fusion)通过创建每一个可利用的数据类型的样本(如,患者)的网络可以解决这个问题。例如,创建一个给定一群患者疾病的全面视图,SNF计算

augustar学习笔记 7869

TestNG与Junit的基本区别

自动化的框架选择webdriver+TestNG+Ant,是因为便于Daily Build和Ant的集成,而单元测试框架选择TestNG是由于具有以下优势,最主要体现"直接用Excel做为数据源"和"在xml中定义测试任务" 1.对于注解类的支持 Junit的执行顺序: Setup( ) test1( ) tearDown( ) Setup( ) test2( ) tearDown( ) TestNG的执行顺序: Setup( ) test1( ) ...

renxingzhadan的专栏 1601

国产化替代落地:C#+Avalonia跨平台开发(麒麟系统适配全流程)

摘要: 随着国产化替代政策的推进,麒麟操作系统成为国产替代的重要选择。本文介绍了如何使用C#和Avalonia框架开发跨平台应用,适配麒麟系统。Avalonia支持Windows、Linux(包括麒麟)和macOS,通过XAML设计UI,便于开发者快速上手。文章详细讲解了开发环境配置、XAML控件设计、Linux特性适配及性能优化,并强调政府30%研发补贴带来的政策红利。未来,随着国产系统生态完善,C#+Avalonia将成为企业跨平台开发的高效解决方案。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3475

全球SAR卫星大盘点与回波数据处理专栏目录

本专栏将详细介绍各国各地区的SAR卫星的特点和性能,以及SAR回波数据的处理方法和技巧。主要介绍民用和商用SAR卫星,帮助你了解商业SAR卫星的最新动态和技术,MATLAB代码将全部开源。以下是专栏目录,持续更新中。

3159

Junit和Testng的区别

什么是Junit? Junit是一个Java语言的单元的测试框架,用于编写和运行可重复的测试 Junit的特性:1.用于测试期望结果的断言(Assertion)  2.用于共享共同的测试数据的测试工具  3.用于方便的组织和运行测试的测试套件  4.图形和文本的测试运行器 什么是Testng? 它类似于Junit,但引入了一些新的功能,使其功能更强大,使用更方便 Testn

name_Fay的博客 1665

位置点位到达判断FC(Easy+Codesys+博途平台)

IN rActPositon REAL 轴当前实际位置 1IN arAbsPosition REAL[10] 各工作点位坐标 2IN rDeadZone REAL 位置达到判断域值 范围 3OUT abInAbsPos BOOL[10] 到达各绝对定位点位标志 位置到达输出 4VAR i INT 循环计数 5VAR rErr REAL 位置偏差 6。

RXXW_Dor的博客 535

Junit和testNg的区别

1.对于注解类的支持 功能   junit    testng (1)注册为类/方法为测试类和方法    @Test    @Test (2)注释为在suite中所有测试之前    无         @BeforeSuite 运行   (3)标注为在suite中所有测试之后   无    @AfterSuite 运行 (4)注册为在测试之

XHui_Lin的博客 2011

微信小程序 - 解决报错 operateAudio:fail audioInstance is not set(wx.getRecorderManager苹果ios真机调试运行,播放音频播放出错解决)

微信小程序,苹果ios系统,真机测试报错,播放音频报错operateAudio:fail audioInstance not exist,errCode: -1,小程序生成音频播放报错errMsg,真机调试报错开发者工具没问题,wx.getRecorderManager,音频实例,InnerAudioContext,各种方法都试了不行,只有ios苹果手机有这个问题,IOS 出现 operateAudio,在iOS无法播放的解决方案,更新到最新版本了还是不行,链接没有特殊字符,微信小程序全局音频设置,手机上播

🏆 前端领域优质创作者 1万+

IgH EtherCAT 从入门到精通:第 30 章 实战:高可用 EtherCAT 系统设计

摘要:构建高可用EtherCAT系统的关键技术 本章详细介绍了工业级EtherCAT系统的高可用性设计方法,主要包括: 冗余链路架构:采用双网卡环形拓扑设计,主备网卡同时工作,通过IgH Master的冗余配置实现线缆故障自动切换。 状态监控机制:提供专用API实时监控主备链路状态,包括从站响应数、链路状态和冗余激活标志,形成完整的故障判断矩阵。 自动恢复功能:系统内置FSM架构支持热插拔自动检测和重配置,从站断线/重连时可自动完成状态恢复,同时允许应用层实施安全措施。 这些技术共同构成了生产环境下Ethe

从事嵌入式linux android驱动开发,拥有全栈能力 243

junit testng_JUnit 4与TestNG

JUnit 4.0在积极开发的长期中断之后于今年初发布。 通过巧妙地使用注释,可以对JUnit框架进行一些最有趣的更改,尤其是对于本专栏的读者而言。 除了从根本上更新外观外,新框架还大大简化了测试用例编写的结构规则。 先前的刚性夹具模型也已放松,以支持更具可配置性的方法。 结果,JUnit不再需要将测试定义为名称以test开头的方法,现在您可以只运行一次夹具,而不是为每个测试运行夹具。 这...

cusi77914的博客 386

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JUnit和TestNG对比

参考链接: JUnit 4 Vs TestNG比较   追求代码质量-JUnit4与TestNG的对比   相同点 都是java测试工具,都是基于注释的且大部分注释相似,它们都可以进行单元测试。   JUnit和TestNG的不同点 注释对比 在JUnit 中,我们必须声明“@BeforeClass”和“@AfterClass”方法作为静态方法,TestNG没有这个约束。 Te...

qq_24292077的博客 3003

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

junit testng_TestNG或JUnit

junit testng 多年以来,无论何时使用Java代码进行单元测试,我始终会回到TestNG。 每当我拿起TestNG时,人们都会问我为什么要继续使用TestNG,尤其是默认开发环境(例如Eclipse或Maven)提供的JUnit时。 继续进行同样的战斗,昨天我开始研究Spring的测试支持 。 它还建立在JUnit之上。 但是,在使用相同功能的几分钟后,我一直在寻找JUnit中一直...

最佳 Java 编程 228

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

单元测试框架 TestNG 和 Junit4的区别

在自动化测试时,经常会用到TestNg 或 Junit 测试框架。那么它们之间有什么联系和区别,如何使用呢?在面试过程中也会经常被问到,结合网上一的些文章,做了以下总结。 TestNg主要用于单元测试和集成测试,它涵盖了 JUnit4 的全部功能,并且在参数化测试、依赖测试以及套件测试(组)方面功能上更加强大。那么TestNg与Junit4具体有哪些区别呢? 下面表中概括了JUnit 4和Te...

Sundy_sc的专栏 938

总结TestNg与JUnit的异同

如果此次测试有失败的例子,我们调试完,想再运行一下这些失败的例子时,可以运行testng-failed.xml文件。TestNg也是一套测试框架,它的灵感来源于Junit(java的单元测试框架)和Nunit(.net的单元测试框架)。注:testNg中@BeforeTest针对的不是被@Test标记的方法,而是在testNg.xml中定义的test。// 比如我们的第一组{4, 7},4就是参数,7就是预期的结果。// 这个方法的框架就不予解释了,大家只需要注意其中的数据,是一个二维数组,数据两两一组。

band_mmbx的博客 1070

利器 | TestNG 与 Junit 对比,测试框架如何选择?

TestNG 和 Junit 作为两大流行的测试框架,有哪些区别?各有哪些优缺点?该如何选择呢?这里简要总结下: Junit 更适合隔离性比较强的单元测试; TestNG 是比 Junit 涵盖功能更全面的测试框架,具有参数化和分组的特性,可以做数据驱动; TestNG 被设计应用覆盖所有的测试,单元、功能、端到端、集成测试等; TestNG 依赖测试时对于依赖方法失败后的用例标记...

weixin_46635091的博客 2735

JUnit与TestNG深度对比:Java单元测试框架选型指南

单元测试是软件质量保障的基石,通过独立验证代码最小单元来确保功能正确性。其核心原理在于隔离依赖、快速反馈,为持续集成和代码重构提供安全网。在Java生态中,JUnit以其简洁专注的设计成为单元测试的事实标准,而TestNG则凭借灵活的依赖管理和分组测试功能,在复杂集成测试场景中展现独特价值。本文聚焦于JUnit与TestNG的实战对比,从测试生命周期、参数化测试到并发执行等关键维度,为开发者提供框架选型的决策依据。通过分析两者在断言库、Mock集成等工程实践中的差异,帮助团队根据项目需求选择最适合的测试策略

cishan3804的博客 397

TestNG或JUnit

多年以来,无论何时使用Java代码进行单元测试,我始终会回到TestNG。 每当我拿起TestNG时,人们都问我为什么要继续使用TestNG,尤其是默认开发环境(例如Eclipse或Maven)提供的JUnit时。 继续进行同样的战斗,昨天我开始研究Spring的测试支持 。 它也建立在JUnit之上。 但是,在使用相同功能的几分钟后,我一直在寻找JUnit中一直找不到的功能。 TestN...

最佳 Java 编程 301
上一篇: MVC框架模式
下一篇: Servlet
殇丶
博客等级 码龄10年 35粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值