Loading

Test.isRunningTest()

Date de publication: Nov 18, 2021
Description
Lorsque nous définissons des données de test à partir d'une méthode de test Apex, nous devons désactiver les déclencheurs qui l'activent. Cela peut entraîner une exception LimitException: "Too many SOQL queries: 101". Dans ce cas, les déclencheurs ne sont pas la cible du cas de test, ce qui entraîne l'échec de la méthode de test. Il n'est pas nécessaire de désactiver le déclencheur pour chaque cas de test, nous pouvons utiliser à la place isRunningTest(). 
Résolution
Configuration du déclencheur en exploitant isRunningTest(). isRunningTest() : renvoie true si le code actuellement exécuté a été appelé par un code contenant une méthode de test, sinon renvoie false. Utilisez cette méthode si vous devez exécuter un code différent selon qu'il a été appelé à partir d'un test. 

Exemple de code Test.isRunningTest

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

Autres cas d'utilisation

1. Pour vous assurer que le déclencheur n'exécute pas le lot si Test.IsRunningTest() est true, testez la classe du lot avec sa propre méthode de test. 
2. Test d'appels externes : dans votre code d'appel externe, vous déterminez si vous exécutez dans le contexte d'un test unitaire en vérifiant Test.isRunningTest() et ,au lieu d'obtenir la réponse à votre appel externe depuis une requête HttpResponse.send(), vous renvoyez à la place une chaîne de test prédéfinie. 
Numéro d’article de la base de connaissances

000386600

 
Chargement
Salesforce Help | Article