Pensando nesse cenário, suponhamos que tenhamos que testar a classe abaixo (supondo que ela fosse uma classe com uma complexa lógica):
public class LogicaComplexa {
public LogicaComplexa(){}
public void metodoComplexo(){
//lógica muito complexa e no meio dela você chama um método privado
this.metodoPrivado();
}
private void metodoPrivado(){
//código que precisa ser coberto
}
}
Veja que no exemplo acima, temos um método privado e um público. Suponhamos que precise testar o método privado, sem ter que passar por toda lógica do método público, que possui uma lógica complexa. O que podemos fazer? Colocar o método público? Nada disso... Para ajudar nesse árduo trabalho que é cobrir 100% de todo o código, temos uma anotação para método Apex, que permite acessarmos um método (para realizar a cobertura de teste) mesmo ele sendo privado (private method). Essa anotação é o @TestVisible. Com ele, mesmo o método sendo privado, é possível acessá-lo por uma classe de teste Apex. Veja com fica esse método:
@TestVisible private void metodoPrivado(){
//código que precisa ser coberto
}
Com essa annotation @TestVisible, é possível acessar um método privado em uma classe de teste:
@isTest
private class LogicaComplexaTest {
@isTest static void teste() {
LogicaComplexa logica = new LogicaComplexa();
logica.metodoPrivado();
}
}
Bem, essa é a dica rápida de hoje.
* Está precisando de um suporte ou uma consultoria nos desenvolvimentos de classes teste Apex dentro da sua plataforma Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/
Nenhum comentário:
Postar um comentário