Skip to main content Stream TDX Bengaluru on Salesforce+. Start learning the critical skills you need to build and deploy trusted autonomous agents with Agentforce. Register for free.
Glenn Dailey 님이 #Trailhead에 질문했습니다
The 'AccountProcessor' class did not achieve 100% code coverage via your test methods. Make sure that you chose 'Run All' tests in the Developer Console at least once before attempting to verify this challenge. I did the run all with no luck. I did notice that this is the new section that was just added and I ran into issues in the first unit too.

Create an Apex class with a method using the @future annotation that accepts a List of Account IDs and updates a custom field on the Account object with the number of contacts associated to the Account. Write unit tests that achieve 100% code coverage for the class.

Create a field on the Account object called 'Number_of_Contacts__c' of type Number. This field will hold the total number of Contacts for the Account.

Create an Apex class called 'AccountProcessor' that contains a 'countContacts' method that accepts a List of Account IDs. This method must use the @future annotation.

For each Account ID passed to the method, count the number of Contact records associated to it and update the 'Number_of_Contacts__c' field with this value.

Create an Apex test class called 'AccountProcessorTest'.

The unit tests must cover all lines of code included in the AccountProcessor class, resulting in 100% code coverage.

Run your test class at least once (via 'Run All' tests the Developer Console) before attempting to verify this challenge.

public class AccountProcessor

{

  @future

  public static void countContacts(Set<id> setId)

  {

      List<Account> lstAccount = [select id,Number_of_Contacts__c , (select id from contacts ) from account where id in :setId ];

      for( Account acc : lstAccount )

      {

          List<Contact> lstCont = acc.contacts ;

         

          acc.Number_of_Contacts__c = lstCont.size();

      }

      update lstAccount;

  }

}

and

@IsTest

public class AccountProcessorTest {

    public static testmethod void TestAccountProcessorTest(){

        Account a = new Account();

        a.Name = 'Test Account';

        Insert a;

        Contact cont = New Contact();

        cont.FirstName ='Bob';

        cont.LastName ='Masters';

        cont.AccountId = a.Id;

        Insert cont;

       

        set<Id> setAccId = new Set<ID>();

        setAccId.add(a.id);

 

        Test.startTest();

            AccountProcessor.countContacts(setAccId);

        Test.stopTest();

       

        Account ACC = [select Number_of_Contacts__c from Account where id = :a.id LIMIT 1];

        System.assertEquals ( Integer.valueOf(ACC.Number_of_Contacts__c) ,1);

  }

 

}
답변 31개
  1. 2016년 4월 19일 오후 4:15
    I am glad that works. PLease mark best answer and close this thread so that if some one has same issue that post can help other
로딩 중
0/9000