简体   繁体   English

Salesforce Apex增加覆盖率测试

[英]Salesforce Apex increase coverage test

My test coverage is up to 66%, how can I increase?我的测试覆盖率高达 66%,我该如何提高? I do not know how to acces or use the alerta variable into the test class, I want to increase the test covergae from 66% to atleast 75% or even more我不知道如何在测试 class 中访问或使用alerta变量,我想将测试覆盖率从 66% 增加到至少 75% 甚至更多

Apex class:顶点 class:

public static Boolean getContacto (String contactId) {
    Boolean alerta = false;
    if(String.isNotBlank(contactId) && String.isNotEmpty(contactId)){
        Contact contacto =[SELECT Id, UniqueId_Status__c, UniqueId__c from Contact where Id =: contactId and Country__c = 'CHILE'];
        
        if(contacto.UniqueId__c == null && (contacto.UniqueId_Status__c == 'M2' || contacto.UniqueId_Status__c == 'M3' || contacto.UniqueId_Status__c == 'M4' || contacto.UniqueId_Status__c == 'R2' || contacto.UniqueId_Status__c == 'R3' || contacto.UniqueId_Status__c == 'R4')){
            alerta = true;
        }else
        if(contacto.UniqueId__c != null && (contacto.UniqueId_Status__c == 'M2' || contacto.UniqueId_Status__c == 'M3' || contacto.UniqueId_Status__c == 'M4' || contacto.UniqueId_Status__c == 'R2' || contacto.UniqueId_Status__c == 'R3' || contacto.UniqueId_Status__c == 'R4')){
            alerta = true;   
        }else
        if(contacto.UniqueId__c != null && contacto.UniqueId_Status__c != 'M2' && contacto.UniqueId_Status__c != 'M3' && contacto.UniqueId_Status__c != 'M4' && contacto.UniqueId_Status__c != 'R2' && contacto.UniqueId_Status__c != 'R3' && contacto.UniqueId_Status__c != 'R4' && contacto.UniqueId_Status__c != 'D1' && contacto.UniqueId_Status__c != null){
            alerta = true;   
        }
    }        
    return alerta;
}

TestClass:测试类:

@isTest public class ATCL_BloquearContactoTest {    @IsTest
    static void bloqueaContactoTest(){
        Contact contactos = new Contact();
        
        contactos.FirstName = 'Amanda';
        contactos.LastName = 'testing';
        contactos.UniqueId_Status__c = 'M1';
        contactos.Country__c = 'CHILE';
        insert contactos;
        
        Test.startTest();
        ATCL_BloquearContactoCTRL.getContacto(contactos.Id);
        Test.stopTest();
    } }

I do not Know how to coverage alerta variable知道如何覆盖警报变量

Thanks Juan谢谢胡安

The low key is to reckon those ifs as diferent scenarios.低调是把这些ifs视为不同的场景。 To achive those diferente scenarios you must add the new values into the test class to eventually pass the ifs sentences.要实现这些不同的场景,您必须将新值添加到测试 class 以最终通过ifs语句。 Every scenrio should be resolve with a difrent @istest method:每个场景都应该使用不同的@istest 方法来解决:

public class ATCL_BloquearContactoTest {
@IsTest
static void bloqueaContactoTestNull(){
    Contact contactos = new Contact();
    
    contactos.FirstName = 'Amanda';
    contactos.LastName = 'testing';
    contactos.UniqueId__c = null;//== null
    contactos.UniqueId_Status__c = 'M2';//like M_ || R_
    contactos.Country__c = 'CHILE';
    insert contactos;
    
    Test.startTest();
    ATCL_BloquearContactoCTRL.getContacto(contactos.Id);
    Test.stopTest();

}
@IsTest
static void bloqueaContactoTestNotNull(){
    Contact contactos = new Contact();
    
    contactos.FirstName = 'Amanda';
    contactos.LastName = 'testing';
    contactos.UniqueId__c = '21354689';//!= null
    contactos.UniqueId_Status__c = 'M2';//like M_ || R_
    contactos.Country__c = 'CHILE';
    insert contactos;
    
    Test.startTest();
    ATCL_BloquearContactoCTRL.getContacto(contactos.Id);
    Test.stopTest();

}
@IsTest
static void bloqueaContactoTestNotNullNotNull(){
    Contact contactos = new Contact();
    
    contactos.FirstName = 'Amanda';
    contactos.LastName = 'testing';
    contactos.UniqueId__c = '21354689';//!= null
    contactos.UniqueId_Status__c = '0';//!(like  M_ || R_)
    contactos.Country__c = 'CHILE';
    insert contactos;
    
    Test.startTest();
    ATCL_BloquearContactoCTRL.getContacto(contactos.Id);
    Test.stopTest();

}

} }

Bye再见

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM