Salesforce Certified Platform Developer II — Question 10

@isTest
static void testIncrement() {
Account acct = new Account(Name = 'Test');
acct.Number_Of_Times_Viewed__c = 0;
insert acct;
AuditUtil.incrementViewed(acct.Id);
Account acctAfter = [SELECT Number_Of_Times_Viewed__c FROM Account WHERE Id = :acct.Id][0]
System.assertEquals(1, acctAfter.Number_Of_Times_Viewed__c);
}
The test method above calls an @future method that increments the Number_of_Times_Viewed__c value. The assertion is failing because the
Number_of_Times_Viewed__c equals 0.
What is the optimal way to fix this?

Answer options

Correct answer: B

Explanation

The correct answer is B because @future methods are processed asynchronously, and using Test.startTest() and Test.stopTest() ensures that the future method execution is completed before the assertion is made. Option A does not address the asynchronous nature of the method, option C is not relevant to when the future method is executed, and option D contradicts the expected behavior of incrementing the count.