首页 > 其他分享 >TestNG进行单元测试

TestNG进行单元测试

时间:2024-09-25 10:02:52浏览次数:10  
标签:代码 calculator 单元测试 TestNG void 测试 Test public 进行

1. 确定测试目标

在白盒测试中,目标是测试代码的内部结构、逻辑路径、分支等。你需要明确哪些类和方法是需要测试的,并决定哪些逻辑路径是关键的。

2. 编写单元测试

单元测试是白盒测试的一种常见形式。在编写 TestNG 测试时,你可以直接调用方法并检查它们的行为。测试用例应该覆盖代码的不同逻辑分支、条件语句等。

示例:

java import org.testng.Assert; import org.testng.annotations.Test; public class CalculatorTest { @Test public void testAddition() { Calculator calculator = new Calculator(); int result = calculator.add(2, 3); Assert.assertEquals(result, 5); } @Test public void testDivision() { Calculator calculator = new Calculator(); int result = calculator.divide(10, 2); Assert.assertEquals(result, 5); } @Test(expectedExceptions = ArithmeticException.class) public void testDivisionByZero() { Calculator calculator = new Calculator(); calculator.divide(10, 0); } }

3. 分支覆盖测试

你可以通过编写不同的测试用例来确保所有的代码分支都得到了覆盖。对于条件语句、循环结构等,可以为每种情况编写单独的测试用例。

java @Test public void testPositiveNumber() { Assert.assertTrue(calculator.isPositive(5)); } @Test public void testNegativeNumber() { Assert.assertFalse(calculator.isPositive(-3)); }

4. 异常处理测试

白盒测试也可以用于测试异常处理。通过使用 TestNG 的 expectedExceptions 注解,可以验证代码是否正确处理异常情况。

java @Test(expectedExceptions = NullPointerException.class) public void testNullPointer() { calculator.add(null, 5); }

5. 使用代码覆盖率工具

为了确保白盒测试覆盖了所有的逻辑分支,你可以结合代码覆盖率工具,如 JaCoCo。通过 JaCoCo,可以生成详细的代码覆盖率报告,确保你编写的 TestNG 测试用例涵盖了足够的代码。

6. 持续集成与自动化

在实际项目中,你可以将 TestNG 测试集成到 CI/CD 管道中,使其成为代码质量保证的一部分。

标签:代码,calculator,单元测试,TestNG,void,测试,Test,public,进行
From: https://www.cnblogs.com/zaigua/p/18430709

相关文章

  • 如何在生成式AI里使用 Ray Data 进行大规模 RAG 应用的 Embedding Inference
    检索增强生成(RAG,即RetrievalAugmentedGeneration)是企业级生成式AI(GenAI)应用的热门案例之一。多数RAG教程演示了如何利用OpenAIAPI结合Embedding模型和大语言模型(LLM)来进行推理(Inference)。然而,在开发过程中,如果能使用开源工具,就可以免去访问自己数据的费用,同时也能加......
  • 婚恋交友小程序进行定制开发,并分析行业新机遇开发一个婚恋相亲小程序,需要多少钱
    婚恋交友小程序的定制开发费用及行业新机遇分析一、定制开发费用开发一个婚恋相亲小程序的费用因多种因素而异,包括但不限于以下几个方面:功能需求:基础功能:如用户注册、登录、个人信息展示、浏览其他用户资料、搜索匹配、在线聊天等,这些功能的开发成本相对较低。高级功能:如复杂的匹配......
  • 安装 TestNG
    通过Maven安装如果你使用的是Maven项目,可以在pom.xml中添加以下依赖来安装TestNG:xml复制代码<dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>7.7.0</version><!--根据需要选择最新版本--><scope>......
  • TestNG语法
    TestNG是一个功能强大的Java测试框架,具有灵活的注解体系、测试方法分组、并行执行、依赖测试、异常测试等功能。它支持创建更高级的自动化测试解决方案。下面将详细介绍TestNG的基本语法和注解的用法。1.TestNG注解TestNG通过注解来定义测试流程,每个注解有不同的用途和......
  • 计算机网络实验2——利用Wireshark对上网操作抓包并进行相关协议分析(实验部分)
    五、实验过程1.安装并启动Wireshark。选择菜单栏上捕获->选项,勾选WLAN网卡。点击Start,进行抓包 Wireshark处于抓包状态中 2.打开浏览器,在地址栏中输入教师指定的web服务器地址。(http://202.113.78.39)为了确保连通性,先ping一下服务器 打开cmd Ping 202.113.78.......
  • crnn_migraphx用于端到端地对不定长的文本序列进行识别的OCR模型
    CRNN论文AnEnd-to-EndTrainableNeuralNetworkforImage-basedSequenceRecognitionandItsApplicationtoSceneTextRecognitionhttps://arxiv.org/abs/1507.05717模型结构CRNN模型的主要结构包括基于CNN的图像特征提取模块以及基于双向LSTM的文字序列特征提取......
  • 【C语言】使用 OpenSSL 进行 AES CBC 加密与解密
    使用OpenSSL进行AESCBC加密与解密在这篇文章中,我们将使用OpenSSL库实现AESCBC模式的加密和解密功能。AES(高级加密标准)是一种对称加密算法,广泛应用于数据保护。本示例展示了如何使用PKCS#7填充标准来处理明文的长度,以及如何确保在加密和解密过程中正确管理密钥......
  • 如何进行数据清洗?以python和ETL工具为例
    数据清洗是数据分析处理中非常重要的一步,它涉及到识别并处理数据集中的错误或不一致信息,以提高数据质量。数据清洗直接对后续数据处理产生决定性影响,去除重复错误无效的数据能够大大提升数据分析的效率。本文将介绍数据清洗的常用方法和工具,同时以python为例用代码进行数据清洗......
  • 1.21之前都是pvc一旦创建立马绑定pv 之后通过参数进行了解耦
    从Kubernetesv1.21开始,PVC支持volumeBindingMode字段,它可以设置为Immediate(立即绑定)或WaitForFirstConsumer(等待第一个消费者)。Immediate模式下,Kubernetes会立即尝试为PVC绑定PV。WaitForFirstConsumer模式下,Kubernetes会等待直到一个Pod引用了该PVC后再为其绑定PV。......
  • 如果你的两个连续变量都是小于0的浮点数,并且你想要使用K近邻(KNN)方法来估计它们的概率
    如果你的两个连续变量都是小于0的浮点数,并且你想要使用K近邻(KNN)方法来估计它们的概率分布并计算KL散度,你可以按照以下步骤进行:确保数据是适当格式化的,即所有值都是负数。使用K近邻方法(如核密度估计)来估计每个数据集的概率密度函数(PDF)。在相同的评估点集上计算这两个PDF。使用这些PD......