Test.setup:
- @testSetup ( Set Up Test Data for an Entire Test Class )Use test setup methods (methods that are annotated with @testSetup) to create test records once and then access them in every test method in the test class.
- Test setup methods can reduce test execution times especially when you’re working with many records
- Test setup methods enable you to create common test data easily and efficiently.
- Test setup methods enable you to create common test data easily and efficiently.
@isTest
private class CommonTestSetup
{
@testSetup
static void setup()
{
Account acct = new Account();
acct.Name = 'Salesforce.com';
acct.Industry = 'Technology';
insert acct;
Contact cont = new Contact();
cont.FirstName = 'Annappa';
cont.LastName = 'ph';
cont.AccountId = acct.Id;
insert cont;
}
@isTest
static void testMethod1()
{
Account acct = [SELECT Id FROM Account WHERE Name='Salesforce.com' LIMIT 1];
acct.Phone = '555-1212';
update acct;
}
@isTest
static void testMethod2()
{
Account acct = [SELECT Phone FROM Account WHERE Name='Salesforce.com' LIMIT 1];
System.assertEquals(null, acct.Phone);
}
}
Note:
If a test class contains a test setup method, the test setup method executes first, before any test method in the class.
Multiple @testSetup methods are allowed in a test class, but the order in which they’re executed by the testing framework isn’t guaranteed
If the test class or a test method has access to organization data by using the @isTest(SeeAllData=true) annotation, test setup methods aren’t supported in this class.