[英]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.