Loading

Why Use Salesforce Test.isRunningTest()

Udgivelsesdato: Dec 2, 2024
Beskrivelse

When we are setting up test data from an Apex test method, we need a way to disable the triggers that will fire because it might cause "LimitException: "Too many SOQL queries: 101".  In this case, the triggers are not the target of the test case, hence this situation will cause the test method to fail. It is not necessary to disable the trigger for every test case, instead we can use isRunningTest(). 

Løsning

Setup up the trigger by using isRunningTest(). The isRunningTest() call returns true if the currently executing code was called by code contained in a test method, false otherwise. Use this method if you need to run different code depending on whether it was being called from a test. 

Example Test.isRunningTest code

if(Test.isRunningTest()){
//do something
}

Other Usage Scenarios

1. To ensure the trigger doesn't execute the batch if Test.IsRunningTest() is true,  and then test the batch class with it's own test method. 
2.  In your testing callout code, you check to see if you're executing within a unit test context by checking Test.isRunningTest() and instead of getting your callout response from a HttpResponse.send() request, you return a prebuilt test string instead. 
3. System.purgeOldAsyncJobs if called within this context, can cause long executions based on data to be purged. Here, using Test.isRunningTest() can help.

Vidensartikelnummer

000386600

 
Indlæser
Salesforce Help | Article