[英]Salesforce Apex increase coverage test
我的测试覆盖率高达 66%,我该如何提高? 我不知道如何在测试 class 中访问或使用alerta变量,我想将测试覆盖率从 66% 增加到至少 75% 甚至更多
顶点 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;
}
测试类:
@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();
} }
谢谢胡安
低调是把这些ifs视为不同的场景。 要实现这些不同的场景,您必须将新值添加到测试 class 以最终通过ifs语句。 每个场景都应该使用不同的@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();
}
}
再见
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.