当前位置: 首页 > 知识库问答 >
问题:

Apex类零代码覆盖率

戴树
2023-03-14

我对Apex很陌生。。一天过去了,我为我的失礼感到非常抱歉。我要做的是返回我的帐户列表,然后查看帐户的合同日期(contract\u Expiration\uu c)。根据该日期,应将自定义字段(update\u active\u status\u text\uu c)更新为null、active或Void。

我没有得到任何错误,但我没有得到任何代码覆盖率。任何帮助都将大有裨益。

提前感谢

顶点类

public class update_active_status {
    public static VOID update_active_statustest(){
        list<Account> myaccount = [SELECT Id, Contract_Expiration__c, update_active_status_text__c FROM Account WHERE CMS_Customer_Type__c = 'Enterprise' or CMS_Customer_Type__c = 'cloud'];
            for(Account a: myaccount){
           if (a.Contract_Expiration__c == null ){ 
                   a.update_active_status_text__c = null;
                   update a;
               } else if (a.Contract_Expiration__c >= Date.today().addDays(-60)) {
                a.update_active_status_text__c = 'Active';
                   update a;
               } else if (a.Contract_Expiration__c < Date.today().addDays(-60)) {
                a.update_active_status_text__c = 'Void';
                   update a;
               } else {
                a.update_active_status_text__c = 'Void';
                  update a;
               }    
        }
     }
}

测试类别

@isTest
public class testupdate_active_status {
    static testMethod void myupdate_active_statusTest() {
        Account acc = new Account(Name = 'Test Account');
        insert(acc);

        Date d = Date.today();
        acc.Contract_Expiration__c = d;
        update(acc);

        acc.update_active_status_text__c = 'Active';
        update(acc);

        acc = [Select update_active_status_text__c From Account Where Id = : acc.Id];
        System.assertEquals('Active', acc.update_active_status_text__c);

    }

    static testMethod void setToNull() {
        Account acc = new Account(Name = 'Test Account');
        insert(acc);

        Date d = Date.today();
        acc.Contract_Expiration__c = d;
        update(acc);

        acc.Contract_Expiration__c = null;
        update(acc);

        acc = [Select update_active_status_text__c From Account Where Id = : acc.Id];
        System.assertEquals(null, acc.update_active_status_text__c);

    }

    static testMethod void createWithDate() {
        Date d = Date.today().addDays(-70);
        Account acc = new Account(Name = 'Test Account', Contract_Expiration__c = d);
        insert(acc);

        acc.update_active_status_text__c = 'Void';
        update(acc);

        acc = [Select update_active_status_text__c From Account Where Id = : acc.Id];
        System.assertEquals('Void', acc.update_active_status_text__c);
    }
}

共有1个答案

杨豪
2023-03-14

您的测试实际上没有使用您编写的类中的任何方法。也许:

@isTest
public class testupdate_active_status {
    static testMethod void myupdate_active_statusTest() {
        Account acc = new Account(Name = 'Test Account');
        insert(acc);

        Date d = Date.today();
        acc.Contract_Expiration__c = d;
        update(acc);

        testupdate_active_status.update_active_statustest();   // Call your new method!

        acc = [Select update_active_status_text__c From Account Where Id = : acc.Id];
        System.assertEquals('Active', acc.update_active_status_text__c);

    }

    static testMethod void setToNull() {
        Account acc = new Account(Name = 'Test Account');
        insert(acc);

        Date d = Date.today();
        acc.Contract_Expiration__c = d;
        update(acc);

        testupdate_active_status.update_active_statustest();   // Call your new method!

        acc = [Select update_active_status_text__c From Account Where Id = : acc.Id];
        System.assertEquals(null, acc.update_active_status_text__c);

    }

    static testMethod void createWithDate() {
        Date d = Date.today().addDays(-70);
        Account acc = new Account(Name = 'Test Account', Contract_Expiration__c = d);
        insert(acc);

        testupdate_active_status.update_active_statustest();   // Call your new method!

        acc = [Select update_active_status_text__c From Account Where Id = : acc.Id];
        System.assertEquals('Void', acc.update_active_status_text__c);
    }
}

新类的任务是更新update\u active\u status\u text\u c。。。当您自己手动/显式更新该字段时,您正在绕过该作业(acc.update\u active\u status\u text\u c=“active”;update(acc) )。

 类似资料:
  • 我看到詹金斯插件中的代码覆盖率为零。我在客户端服务器模式下使用 Jacoco 0.8.7。客户端是詹金斯,服务器(此处存在jaco代理jar)是一个VM。当我使用旧版本的jaco 0.7.4时,这并没有发生。 Jenkins CI日志- Jenkins CI插件配置是这样的。使用ant和maven组合来转储exec文件。

  • 我正在使用Salesforce,我想从我的沙盒中部署一个自定义的Apex类。在生产中没有Apex类,估计代码覆盖率为0%,因此当我尝试部署我的类时,我会收到以下错误 有没有办法部署我的类? 我要部署的类位于此处: 测试等级:

  • 代码覆盖是查找未被测试执行的代码区域的过程。不过要记住的是这并不能说明你测试代码的有效性。 在requirements.txt文件中添加依赖包: coverage==4.4.2 然后,我们在manage.py中新增一个命令: import coverage COV = coverage.coverage( branch=True, include='project/*',

  • 这是一个重要的可量化指标,如果代码覆盖率很高,你就可以放心的修改代码,在发版本的时候也能睡个安稳觉。否则就是拆东墙补西墙,陷入无尽的 bug 诅咒中。 那么在 OpenResty 里面如何看到代码覆盖率呢?其实很简单,使用 LuaCov 可以很方便的实现。 我们先了解下 LuaCov,这是一个针对 Lua 脚本的代码覆盖率工具,通过 luarocks 来安装: luarocks install l

  • 我的代码运行在具有单独JVM的单独虚拟机上。我想在此虚拟机上以tcpserver模式设置JaCoCo代理以收集覆盖率数据。然后,我将在我的maven项目中以tcpclient模式设置JaCoCo代理,以连接到上面提到的VM并获取覆盖率数据。 问题是代理不收集任何覆盖数据。在中创建了覆盖率数据文件,但该文件为空。 下面是代理选项:-Java agent:/usr/xx/plugins/org . j

  • 问题内容: 我正在使用Mocha测试我的NodeJS应用程序。我无法弄清楚如何使用其代码覆盖功能。我尝试使用Google搜索,但没有找到任何合适的教程。请帮忙。 问题答案: 您需要一个额外的库来覆盖代码,而伊斯坦布尔的强大和便捷将使您震惊。通过Mocha测试后,请尝试以下操作: 现在,只需将命令nyc放在现有测试命令的前面,例如: