+ Start a Discussion
SolidLucasSolidLucas 

test class help

someone can help me how to test this method?
 
public PageReference addAddress(){
		boolean mFound = false;
		//Identificando se o endereço/produto já existem na lista.
		for(ItemCredito ic: listItens) {
			if (ic.solicitacaoCreditoItem.Conta__c == solicitacaoCreditoItem.Conta__c){
				if (ic.solicitacaoCreditoItem.Produto__c == solicitacaoCreditoItem.Produto__c){
					solicitacaoCreditoItem.Produto__c.addError(msgAddressProductDuplicated);
					mFound = true;
					break;
				}
			}
		}
		
		if (mFound) {
			ApexPages.Message myMsg = new ApexPages.Message(ApexPages.Severity.ERROR, msgAddressProductDuplicated);
			ApexPages.addmessage(myMsg);	
		}
		else{
			
			ItemCredito item = new ItemCredito();
			item.solicitacaoCreditoItem = solicitacaoCreditoItem;
			
			Account mAccount = mapChildAccounts.get(solicitacaoCreditoItem.Conta__c);
			item.endereco = mAccount.EnderecoEntrega__r.Name;
			item.documento = mAccount.N_mero_do_Documento__c;
			item.tipoDocumento = mAccount.Tipo_de_Documento__c;
			item.isDeleted = false;
			index = index + 1;
			item.index = index;
			listItens.add(item);
		
			displayPopup = false;
		}
		return null;
	}

my test class is 66%

private class SolicitacaoCredito_ctl_tst {

    static testMethod void myUnitTest() {
        //instanciando o objeto
   		SolicitacaoCredito__c solicitacaoCredito = loadValues();
   	
   		//criando um standardController e passando o objeto criado no construtor.
   		ApexPages.StandardController standardController = new ApexPages.StandardController(solicitacaoCredito);
   		
   		//criando uma instancia do controlador que sera testado passando o standardController como parametro
   		SolicitacaoCredito_ctl controlador = new SolicitacaoCredito_ctl(standardController);
		controlador.cancelAddress();
		controlador.deleteItem();
		controlador.doSave();
		controlador.doSaveAndSend();
		controlador.addAddress();
		controlador.newAdddress();
		
		controlador.displayPopup = false;
    }
    
    /*
     * resposavel por gerar massa de dados para a classe de teste
     */
     private static SolicitacaoCredito__c loadValues(){
	    
	     Account acc = new Account(
	     
	     	name = 'João',
		 	PerfilRisco__c = 'Teste perfil',
		 	TipoLimite__c = 'Teste tipo limite',
		 	ToleranciaInadimplencia__c = 'teste',
		 	Tolerancia__c = 3,
		 	GarantiaRenegociacao__c = true,
		 	GarantiaCreditoRotativo__c = false,
		 	TipoGarantia__c = 'teste do tipo de garantia',
		 	ValorGarantia__c  = 150
		 	
	     );
	     
	   insert acc;
	     
	   SolicitacaoCredito__c solicitacaoCredito = new SolicitacaoCredito__c(
	   		
	   		Conta__c  = acc.Id,
	   		GarantiaCreditoRotativo__c = true,
	   		GarantiaRenegociacao__c = true,
	   		Justificativa__c = 'Teste justificativa',
	   		LimiteConcedido__c = 10,
	   		LimiteSolicitado__c = 20,
	   		LimiteSugerido__c = 15,
	   		ParecerAnalista__c = 'teste parecer analista',
	  		ParecerSerasa__c = 'teste parecer serasa',
	  		PerfilRisco__c = 'teste de perfil de risco',
	  		PrecoSugerido__c = 50.5,
	  		Status__c = 'Rascunho',
	  		TipoGarantia__c = 'teste tipo de garantia',
	  		TipoLimite__c = 'teste tipo de limite',
	  		Tolerancia__c = 3,
	  		ToleranciaInadimplencia__c = 'teste',
	  		ValorGarantia__c = 15,
	  		VolumeKg__c = 50
 
	   );
	   insert solicitacaoCredito;
	   
	   Product2 prod = new Product2(
	   		name = 'teste de produto'
	   		
	   
	   );
	   insert prod;
	 
	   SolicitacaoCreditoItem__c solicitacaoCreditoItem = new SolicitacaoCreditoItem__c(
	   		
	   		Conta__c = acc.Id,
	   		Inadimplente__c = false,	
	   		//PrazoConcedido__c = solicitacaoCredito.Id,
	   		//PrazoSolicitado__c = ,
	   		//PrazoSugerido__c = solicitacaoCredito.Id,
	   		Preco__c = 10,
	   		SolicitacaoCredito__c = solicitacaoCredito.Id,
	   		VolumeKg__c = 20		
	   		
	   );
	   insert solicitacaoCreditoItem;
	   
	   Preco__c preco = new Preco__c(
	   		Endereco__c = acc.Id,
	   		ObservacaoHistorico__c = 'teste',
	   		PrecoListaAnterior__c = 15,
	   		PrecoListaVigente__c = 14,
	   		PrecoUltimaVenda__c = 10.2,
	   		PrecoUltimaVendaAno__c = 20,
	   		Produto__c = prod.Id
	   ); 
	   insert preco;
	  
	   return solicitacaoCredito;
   } 
}
 


 

PratikPratik (Salesforce Developers) 
Hi,

I can see many conditional (IF) statements in the above code.
The key to achieve the maximum code covarage in this type of code is cover bpoth positive and negative scenarion for IF statement. Try to update the values for the conditional variables which will satisfy the IF atstement and which will not. 

Thanks,
Pratik