软件测试!!单元测试的测试方法命名约定






4.56/5 (6投票s)
使用行为驱动开发(BDD)进行单元测试的测试方法命名约定
在阅读本主题之前,建议先阅读——“软件测试!!编写单元测试的最佳实践和原则”
3.3 编写测试场景、测试用例和测试数据
3.3.1 单元测试仅需三个测试用例,不多不少
- 正向测试用例:正确的数据以检查正确的输出。
- 负向测试用例:损坏或缺失的数据以检查是否能正常处理。
- 异常测试用例:输入意外数据或行为,并检查是否正确捕获了异常。
3.3.2 根据测试用例设置测试数据
让我们设置一些测试数据,并以“GetSum()”为例。我的主要目标是向您展示如何为测试用例设置一些测试数据。
3.3.2.1 测试数据类型
- 正向数据
- 负向数据
- 异常数据
3.3.2.1.1 正向测试用例的正向数据
正向测试用例的主要目标是验证逻辑的功能。
测试用例-1:给定正数值,应返回预期结果
- 测试数据-1:将输入参数设置为 firstNumber =1, secondNumber=1
3.3.2.1.2 负向测试用例的负向数据
负向测试用例的主要目标是根据您的业务需求,针对错误的输入获得正确的消息。
测试用例-2:给定无效值,应生成无效参数消息
- 测试数据-2:将输入参数设置为 firstNumber =-1, secondNumber =-1
- 测试数据-3:将输入参数设置为 firstNumber =-1, secondNumber = 1
- 测试数据-4:将输入参数设置为 firstNumber = 0, secondNumber = 1
- 测试数据-5:将输入参数设置为 firstNumber = 0, secondNumber =-1
- 测试数据-6:将输入参数设置为 firstNumber = 0, secondNumber = 0 等……。
3.3.2.1.3 异常测试用例的异常数据
异常测试用例的主要目标是找出具有正确消息的正确异常处理。这样您的代码就不会因超出阈值而崩溃。
在这里,您可以设置测试数据的阈值。在 DOT NET 中,int 类型变量的最小值是-2147483648,最大值是2147483647。
测试用例 3:给定阈值限制值,应抛出异常消息
- 测试数据-7:将输入参数设置为 firstNumber =1, secondNumber =2147483649
- 测试数据-8:将输入参数设置为 firstNumber =1, secondNumber = -2147483649
- 测试数据-9:将输入参数设置为 firstNumber =2147483649 secondNumber = -2147483649
- 测试数据-10:将输入参数设置为 firstNumber =2147483647, secondNumber=2147483647 等……。
3.4 单元测试方法命名约定
3.4.1 单元测试传统原则
一个测试方法用于测试一个且仅一个方法,一个断言方法一次只应测试一个预期。
简而言之,该原则是——“一个测试方法一个函数/方法和一个断言”
那么,让我们看下面的例子
3.4.1.1 将传统原则与实际情况进行比较
3.4.1.1.1 测试场景
验证“GetSum”方法
3.4.1.1.2 测试用例
3.4.1.1.2.1 正向测试用例
TC1:给定正数值,应返回预期结果
测试数据-1:firstValue =5, secondValue =6
3.4.1.1.2.2 负向测试用例
TC2:给定零值,应生成无效参数消息
测试数据-2:firstValue =0, secondValue =0
TC3:给定负数值,应生成无效参数消息
测试数据-3:firstValue =-5, secondValue =-6
3.4.1.1.2.3 异常测试用例
TC4:给定阈值限制值,应抛出异常消息
测试数据-4:firstValue =2147483647, secondValue =2147483647
3.4.1.1.3 测试方法示例
现在根据传统原则,让我们为“GetSum”编写测试方法
现在根据传统原则,我们已经用“测试数据-1”涵盖了正向测试用例。但是负向和异常测试用例呢?
如何用传统原则涵盖负向和异常测试用例?
3.4.2 行为驱动开发 (BDD)
3.4.2.1 为什么需要 BDD
如果我们想涵盖我们前面示例中所有测试用例的行为,那么我们需要遵循一些技术,以便能够写下方法的所有行为。所以,BDD 是一种技术,它给了我们机会,以标准且可读的命名约定来满足所有测试用例。许多人,许多想法。有许多技术可以编写测试方法的命名约定。但它真的取决于您和您的偏好。无论如何,如果您遵循其他技术,也没有对错之分。总之,我们可以说,在 BDD 中,组件测试其预期的行为。
3.4.2.2 BDD 概念
- 给定我是一个 BDD 技术初学者
而且我以前从未使用过这项技术 - 当我阅读这篇关于 BDD 的教程时
- 那么我开始喜欢它并开始使用它
最后我学会了它。
3.4.2.3 BDD 命名约定
3.4.2.3.1 测试场景
验证“GetSum”方法
3.4.2.3.2 测试用例
3.4.2.3.2.1 正向测试用例
TC1:给定正数值,应返回预期结果
测试数据-1:firstValue =5, secondValue =6
测试方法 - 命名约定
- 鉴于PositiveVaidValuesAsParams_当GetSumIsCalled_那么ItShouldReturnSumValue
更具可读性 -
- 鉴于_Positive_Vaid_Values_As_Params_当_GetSum_Is_Called_那么_It_Should_Return_Sum_Value
3.4.2.3.2.2 负向测试用例
TC2:给定零值,应生成无效参数消息
测试数据-2:firstValue =0, secondValue =0
测试方法 - 命名约定
鉴于ZeroValuesAsParams_当GetSumIsCalled_那么ItShouldThrowInvalidArgumentException
更具可读性 -
给定_零_值_作为_参数_当_调用_GetSum_那么_它_应_抛出_无效_参数_异常
TC3:给定负数值,应生成无效参数消息
测试数据-3:firstValue =-5, secondValue =-6
测试方法 - 命名约定
鉴于NegativeValues_当GetSumIsCalled_那么ItShouldThrowInvalidArgumentException
更具可读性 -
鉴于_Negative_Values_当_GetSum_Is_Called_那么_It_Should_Throw_Invalid_Argument_Exception
3.4.2.3.2.3 异常测试用例
TC4:给定阈值限制值,应抛出异常消息
测试数据-4:firstValue =2147483647, secondValue =2147483647
鉴于MaxLimitValuesOfIntAsParams_当GetSumIsCalled_那么ItShouldThrowSumException
更具可读性 -
给定_整数_的最大_限制_值_作为_参数_当_调用_GetSum_那么_它_应_抛出_Sum_异常