美文网首页
Apex 单元测试辅助函数简介

Apex 单元测试辅助函数简介

作者: 程程哥 | 来源:发表于2018-08-22 15:23 被阅读0次

startTest和stopTest的使用

在Apex的Test类中,有startTest和stopTest两个函数。这两个函数经常配对使用。

每个单元测试函数都只能调用它们一次。

  • startTest函数标明了测试的开始。在使用它之前,测试数据应该已经建立完成。
  • stopTest函数标明了测试的结束。所有在startTest和stopTest之间调用的异步函数都会同步执行。所以在stopTest之后可以使用assert语句来检查异步函数的执行结果。

在startTest和stopTest之间,代码中的限制(Apex Governor Limits)将会进行新的计算。直到stopTest被调用,Apex的Governor Limits会从startTest被调用之前继续计算。

比如:在Salesforce中函数的SOQL调用限制是100。如果在startTest之前已经执行了99条SOQL,在startTest调用之后,还可以执行100条SOQL。当stopTest被调用后,便只能再执行1条SOQL了。

isRunningTest()

isRunningTest()方法存在于Apex的Test类中,可以在代码中用于检测当前执行的代码是否是单元测试。

语法

if (Test.isRunningTest()) {
    // do something
}

使用情况举例

  1. 在为单元测试创建测试数据时,如果系统中已经有了很多相关的触发器(trigger),而此单元测试并不是为了测试它们,那么这些触发器也仍然会被执行。执行过多的触发器一方面会降低系统效率,另一方面也可能引发其他的错误。为了避免这些问题,可以在触发器类中使用isRunningTest()函数来跳过某些逻辑的执行。

  2. 在Visualforce的标准控制器扩展中,可以使用addFields()函数来读取更多的字段。但是当创建单元测试时,addFields()的执行会导致测试出错。这时就要在执行addFields()前用isRunningTest()检测当前的执行是否是单元测试。
    比如:

public ExtensionExample(ApexPages.StandardController controller)
{
    List<String> fields = new List<String> {'Custom_field1__c', 'Custom_field2__c'};
    
    // 当进行单元测试时,跳过addFields()的执行
    if (!Test.isRunningTest()) {
        controller.addFields(fields); 
    }

    // 为了增加代码测试的覆盖率,也可以将上面的代码写成一行,这样就可以全部覆盖了
    // if (!Test.isRunningTest()) controller.addFields(fields); 

    record = (Account)controller.getRecord();

    ...
}

相关文章

  • Apex 单元测试辅助函数简介

    startTest和stopTest的使用 在Apex的Test类中,有startTest和stopTest两个函...

  • CodeIgniter辅助函数简介

    作者:烨竹 目录结构 辅助函数参考 数组辅助函数 验证码辅助函数 Cookie 辅助函数 日期辅助函数 目录辅助函...

  • Apex单元测试

    单元测试类 Salesforce中为Apex语言提供了完整的单元测试流程,包括单元测试类、测试的运行和结果分析等。...

  • Apex简介

    Apex特点 Salesforce为开发者提供了Apex语言。它是一种语法上类似于Java的编程语言,有以下特点:...

  • 测试过程

    一、测试过程简介 单元测试 集成测试 系统测试 二、测试过程单元集成系统及比较 1.单元测试--函数 单元测试时针...

  • laravel添加自定义的辅助函数

    辅助函数 Laravel 提供了很多 辅助函数,有时候我们也需要创建自己的辅助函数。 我们把所有的『自定义辅助函数...

  • Apex 的 API 简介

    Salesforce 数据API分类 Salesforce中提供了四种数据API接口。数据API接口为开发者提供了...

  • Vuex辅助函数的基本使用

    vuex的辅助函数 都有什么辅助函数 mapState mapActions mapMutations mapGe...

  • Python 学习笔记 066

    单元测试 对函数进行单元测试 对类进行单元测试 文档测试 创建函数的解释和介绍 使用Telnet命令远程连接别人的...

  • 辅助函数

    辅助函数 必须 把所有的自定义辅助函数存放于 bootstrap 文件夹中,并在 bootstrap/app.ph...

网友评论

      本文标题:Apex 单元测试辅助函数简介

      本文链接:https://www.haomeiwen.com/subject/fwkbcftx.html