部署运行测试通过,但仍然显示所选Apex触发器的测试覆盖率为0%,至少为1%



部署运行测试通过,但仍然显示所选Apex触发器的测试覆盖率为0%,至少为1%
顶点触发:部署失败:消息:"所选Apex触发器的测试覆盖率为0%,至少需要1%的测试覆盖率"

Trigger  AutoActivityCreation on Account(after update)
{
    List<Task> task = new List<Task>();
for (Integer i = 0; i < Trigger.new.size(); i++) {
                       List<String> techs = Trigger.new[i].Toolsberry_new_tech_installs__c.split(';');                    
                       Integer added_tech = techs.size();
                       if(Trigger.new[i].Toolsberry_new_tech_installs__c=='null'){
                           added_tech=0;
                       }
                        List<String> re_techs = Trigger.new[i].Toolsberry_removed_tech_installs__c.split(';');
                       Integer removed_tech = re_techs.size();
                        if(Trigger.new[i].Toolsberry_removed_tech_installs__c=='null'){
                           removed_tech=0;
                       }

task.add(new Task(
                         whatid=Trigger.new[i].Id,
                         OwnerId=Trigger.new[i].OwnerId,
                         Subject='Technologies Added '+added_tech+' , Removed '+removed_tech,
                         Status = 'Completed',
                         ActivityDate = system.today()
                         ) ) ;
 }
 insert task;
}

Apex class - test and pass

@isTest
private class AutoActivityCreationTest
{
    static testMethod void myUnitTest()
    {  
       List<Task> task = new List<Task>();
       Account testAccount = new Account(name='Test Company Name',Toolsberry_new_tech_installs__c='',Toolsberry_removed_tech_installs__c='');
       insert testAccount;
            List<String> techs = testAccount.Toolsberry_new_tech_installs__c.split(';');                    
                       Integer added_tech = techs.size();
                       if(testAccount.Toolsberry_new_tech_installs__c=='null'){
                           added_tech=0;
                       }
                        List<String> re_techs = testAccount.Toolsberry_removed_tech_installs__c.split(';');
                       Integer removed_tech = re_techs.size();
                        if(testAccount.Toolsberry_removed_tech_installs__c=='null'){
                           removed_tech=0;
                       }

       Task testTask = new Task(WhatID = testAccount.Id,Subject= 'Technologies Added '+added_tech+' , Removed '+removed_tech, Status = 'Completed',
                         ActivityDate = system.today());
       test.startTest();
       insert testTask;
      System.assertEquals('Technologies Added '+added_tech+' , Removed '+removed_tech,testtask.Subject);
      test.stopTest();

    }
}

你的触发器是为"after update",但我在你的测试代码中看到的是"insert testTask"。

您要么需要修改您的触发器以包含"after insert",要么调整您的测试,以便它也对对象"testTask"进行更新。一旦您执行了这些选项中的任何一个,触发代码就会从测试代码中被调用。

最新更新