Problem: Why we use @TestVisible annotation for a private method and private variable of a Class in Salesforce?
Description: I have a situation where I want to call a private method of a class in the test class, whenever I tried to call the private method it throw an error that no such method exists.
Solution: @TestVisible annotation allow test methods to access private or protected members of another class
Code Sample:
public class updaterecord { @TestVisible private static string StatusOfCon = ‘Active’; // Private variable // Private method @TestVisible private static void updateMethod(Contact con) { Update con; } } Test Class: @isTest private class Testupdaterecord { @isTest static void testup() { String stat = Testupdaterecord.recordNumber; // Accessing private variable annotated with TestVisible Contact conn1 = new Contact(); conn1.firstname = ”test”; conn1.status = stat; Testupdaterecord.updateRecord(conn1); // Accessing private method annotated with TestVisible } }