单元测试的测试用例

     2023-02-26     224

关键词:

【中文标题】单元测试的测试用例【英文标题】:test cases for unit testing 【发布时间】:2014-10-12 05:46:45 【问题描述】:

在我的项目中,我看到我们有大量的方法来测试某些东西。如果你想了解发生了什么,你应该看看 throw all 方法。当您有一个包含 20 种测试方法的类时,您很难在这么多方法中找到一个/多个测试用例。

我从未见过使用接口来定义测试用例涵盖的内容。

例如

   puclic class A
     public SomeResult doSomething(Param param)
       .....
      
     ..... some other methods
   

对于这种方法有4种情况(例如);

    使用空参数检查方法是否按预期工作 检查方法是否为某些参数区域抛出运行时异常 检查方法是否返回预期结果(正常情况) 检查不同的东西

在我们测试这些案例的项目中,人们只需创建 4 个方法(它们可以按任何顺序编写,例如测试类开头出现的 2 个第一个案例,最后一秒可以写在末尾(200 行代码)以下))。另外从测试的名称中也不一定能清楚地知道检查的测试方法。

这样在接口中描述测试用例是不是很好:

public interface ATestSpecification
    void doSomething_checkForNullParam();
    void doSomething_checkExceptionForNotAllowedParam();
    void doSomething_normalCase();
    void doSomething_checkSomethingDifferent();

还有测试课:

public class ATest implement ATestSpecification
...
//implenent test cases , described in test specification
...

【问题讨论】:

【参考方案1】:

由于开发人员测试本质上是文档,并且为了方便开发人员处理代码而存在,我建议您放弃为测试方法创建接口的想法——以前从未见过,现在抱歉刚才看到了。这些接口的存在只会妨碍您在代码中搜索对方法名称的引用,或者让您的 IDE 在您希望找到如何正确使用示例的任何方法上显示调用层次结构。不要以自己的方式行事。

在测试的情况下,因为它们是文档,所以我倾向于偏离 Java 中命名方法的通常模式。也就是说,我将放弃使用 camelCase 来支持 all_lowercase_separated_by_underscores,这通常看起来更容易阅读。因此,我将使用“should_do_something”或“ensure_whatever”,以便测试用例名称帮助我找到我可能正在寻找的东西。另外,我会较少关注测试方法,而更关注测试行为——我知道这听起来像分裂头发,但我就是这么想的。弄清楚类需要做什么并编写这些测试,然后使用 TDD 实现。如果我使用 TDD 或其近似值,我通常觉得不需要回填任何测试。 Jimmy 在保持您的代码专注和遵循 SRP 方面是完全正确的。

希望有帮助!

编辑:命名约定总是有争议的——只要选择一个适合你的。之前出现过here 和here。

【讨论】:

软件单元测试及测试用例设计

  单元测试是针对各功能模块的进行测试,进行充分的单元测试,是提高软件质量,降低研发成本的必由之路。文章对软件测试和单元测试相关概念做了简要说明,以用户注册模块出生年月日的检验为例,说明了用例设计的过... 查看详情

单元测试用例 - Swift 3.2

】单元测试用例-Swift3.2【英文标题】:Unittestcases-Swift3.2【发布时间】:2018-08-0923:35:08【问题描述】:我必须编写单元测试用例来检查是否从单元测试用例调用的方法中调用了特定方法。classAfuncfetchPersonsData()letb=B()b.sendDataToserver([... 查看详情

测试用例要素

...成测试  产品编号-IT-集成测试项名-集成测试子项名-XXX单元测试  产品编号-UT-单元测试项名-单元测试子项名-XXX2.测试项目当前测试用例所在测试大类、被测试需求、被测模块、被测单元等  系统测试用例测试项目  软... 查看详情

编写单元测试用例说明书的依据是啥

编写单元测试用例说明书的依据是什么一、单元测试的概念单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。测试的覆盖种类1.语句覆... 查看详情

回调方法的单元测试用例ios

】回调方法的单元测试用例ios【英文标题】:Unittestcaseforcallbackmethodsios【发布时间】:2015-08-0311:16:18【问题描述】:我的应用中有以下方法,我需要为其编写单元测试用例。谁能建议我如何测试是否调用了成功块或错误块。-(IBAc... 查看详情

19.unittest原理(代码片段)

单元测试单元测试(unittesting)是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可... 查看详情

测试代码

...可确定代码面对各种输入都能够按照要求那样工作。 单元测试和测试用例: 单元测试用于核实蛮熟的某个方面没有问题;测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。良好的测... 查看详情

Jasmine 中的单元测试用例

】Jasmine中的单元测试用例【英文标题】:UnitTestcaseinJasmine【发布时间】:2016-02-1203:21:33【问题描述】:我正在尝试为循环中的if条件编写一个测试用例,但是我没有将它作为过滤器的一部分。有什么方法可以测试循环中的if条件... 查看详情

在单元测试用例的 TFS 构建中找不到路径的一部分

】在单元测试用例的TFS构建中找不到路径的一部分【英文标题】:CouldnotfindapartofthepathinTFSBuildforUnitTestCase【发布时间】:2020-02-2018:37:45【问题描述】:我正在尝试将我的单元测试用例包含在我的构建管道中,以将这些单元测试用... 查看详情

执行整个测试套件时单元测试用例失败

】执行整个测试套件时单元测试用例失败【英文标题】:UnitTestcasefailswhenwholeTestSuiteisexecuted【发布时间】:2017-04-1121:08:06【问题描述】:我正在为我的sqlite数据库类编写单元测试用例。我在那个类中有五个公共API。我的测试用例... 查看详情

为 Preact 编写单元测试用例

】为Preact编写单元测试用例【英文标题】:WritingUnitTestCasesforPreact【发布时间】:2018-04-0419:33:47【问题描述】:我对Preact很陌生,我必须为Preact中的应用程序编写单元测试用例。我可以发现jest和酵素可以用于相同的用途,但我每... 查看详情

xcode中的单元测试用例失败

】xcode中的单元测试用例失败【英文标题】:Unittestcasefailsinxcode【发布时间】:2015-04-2409:33:57【问题描述】:当我在xcode6.3中运行我的单元测试用例时,它给了我一个错误提示ld:buildingforiOSSimulator,butlinkingagainstdylibbuiltforMacOSXfile\'/A... 查看详情

如何使用闭包创建单元测试用例

】如何使用闭包创建单元测试用例【英文标题】:Howtocreateunittestcaseswithclosures【发布时间】:2020-07-2912:31:52【问题描述】:我已经在我的应用程序中创建了单元测试用例,到目前为止还不错。我在我的项目中使用MVVM并且我的API... 查看详情

单元测试中测试用例的设计方法

单元测试中测试用例的设计方法1.用于语句覆盖的基路径法基路径法保证设计出的测试用例,使程序的每一个可执行语句至少执行一次,即实现语句覆盖。基路径法是理论与应用脱节的典型,基本上没有应用价值,读者稍作了解... 查看详情

第6章unittest单元测试框架-selenium3自动化测试(代码片段)

第6章unittest单元测试框架单元测试是一项对技术要求很高的工作,只有白盒测试人员和软件开发人员才能胜任但用单元测试框架做单元测试却十分简单,而且单元测试框架不仅可以用来做单元测试,它还适用于不同类型的「自动... 查看详情

软件测试之如何编写单元测试用例

单元测试是以程序设计说明书为指导,测试模块范围内的重要控制路径,以揭露错误。当程序编好以后,将它录制在媒体上,或者直接由终端键盘输入到机中进行调试。测试的相对复杂性和所发现的错误受到单元测试所限定的范... 查看详情

严格捕获测试用例以进行单元测试

】严格捕获测试用例以进行单元测试【英文标题】:Rigorincapturingtestcasesforunittesting【发布时间】:2010-09-0523:15:10【问题描述】:假设我们有一个用伪语言定义的简单函数。List<Numbers>SortNumbers(List<Numbers>unsorted,boolascending);... 查看详情

我想针对特定的构建类型运行单元测试和浓缩咖啡测试用例

】我想针对特定的构建类型运行单元测试和浓缩咖啡测试用例【英文标题】:Iwanttorununittestandespressotestcasesaspecificbuildtype【发布时间】:2018-10-0708:37:46【问题描述】:我有一个多个falvoured和多个构建类型的项目..有一些espresso和单... 查看详情