Loading

Test.isRunningTest()

Veröffentlichungsdatum: Nov 18, 2021
Beschreibung
Wenn wir Testdaten aus der Apex-Testmethode einrichten, benötigen wir eine Möglichkeit, um die Auslöser, die ausgelöst werden, zu deaktivieren. Möglicherweise wird folgende Ausnahme ausgelöst: "LimitException: "Too many SOQL queries: 101". In diesem Fall sind die Auslöser nicht das Ziel des Testkundenvorgangs, daher führt dieses Szenario dazu, dass die Testmethode fehlschlägt. Es ist nicht erforderlich, den Auslöser für jeden Testkundenvorgang zu deaktivieren. Sie können stattdessen "isRunningTest()" verwenden. 
Lösung
Richten Sie den Auslöser ein und verwenden Sie dazu "isRunningTest()". isRunningTest() – Gibt true zurück, wenn der aktuell ausgeführte Code von einem in einer Testmethode enthaltenen Code aufgerufen wurde, ansonsten false. Verwenden Sie diese Methode, wenn Sie unterschiedlichen Code ausführen müssen, je nachdem, ob er von einem Test aufgerufen wurde. 

Codebeispiel für Test.isRunningTest

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

Weitere Nutzungsszenarios

1. Um sicherzustellen, dass der Auslöser den Batch nicht ausführt, wenn Test.IsRunningTest() wahr ist, und dann die Batch-Klasse mit ihrer eigenen Testmethode zu testen. 
2. Callout-Tests – Überprüfen Sie in Ihrem Callout-Code, ob die Ausführung innerhalb eines Einheitentest-Kontextes erfolgt, indem Sie Test.isRunningTest() überprüfen. Anstatt Ihre Callout-Antwort von einer HttpResponse.send()-Anfrage zu erhalten, geben Sie stattdessen einen vordefinierten Teststring zurück. 
Nummer des Knowledge-Artikels

000386600

 
Laden
Salesforce Help | Article