65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.56/5 (6投票s)

2017年4月14日

CPOL

5分钟阅读

viewsIcon

12510

使用行为驱动开发(BDD)进行单元测试的测试方法命名约定

在阅读本主题之前,建议先阅读——“软件测试!!编写单元测试的最佳实践和原则”

3.3 编写测试场景、测试用例和测试数据

3.3.1 单元测试仅需三个测试用例,不多不少

  1. 正向测试用例:正确的数据以检查正确的输出。
  2. 负向测试用例:损坏或缺失的数据以检查是否能正常处理。
  3. 异常测试用例:输入意外数据或行为,并检查是否正确捕获了异常。

3.3.2 根据测试用例设置测试数据

让我们设置一些测试数据,并以“GetSum()”为例。我的主要目标是向您展示如何为测试用例设置一些测试数据。

3.3.2.1 测试数据类型

  1. 正向数据
  2. 负向数据
  3. 异常数据
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 概念

  1. 给定我是一个 BDD 技术初学者
    而且我以前从未使用过这项技术
  2. 我阅读这篇关于 BDD 的教程时
  3. 那么我开始喜欢它并开始使用它
    最后我学会了它。

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_异常

© . All rights reserved.