Testen des Änderungsereignisauslösers
Lernziele
Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
- Schreiben einer Apex-Testklasse für den Apex-Änderungsereignisauslöser
- Ausführen des Tests und Sorgen für Testabdeckung für den Apex-Änderungsereignisauslöser
Testen des Änderungsereignisauslösers
Nachdem Sie erfahren haben, wie ein Änderungsereignisauslöser geschrieben wird, lassen Sie uns jetzt einen Test dafür schreiben. Das Testen Ihres Auslösers ist nicht nur als bewährte Vorgehensweise wichtig, sondern wird von der Plattform auch erzwungen. Ehe Sie Apex-Auslöser packen oder in der Produktion bereitstellen können, müssen Sie für Apex-Tests und ausreichende Codeabdeckung sorgen.
Sie sorgen für Testabdeckung für den Apex-Auslöser, indem Sie eine Apex-Testklasse mit einer oder mehreren Testmethoden schreiben. Die Struktur einer Testmethode für Änderungsereignisauslöser sieht wie folgt aus.
Dies ist die erste Anweisung, die sie in die Testmethode einschließen müssen:
Diese Anweisung aktiviert alle Einheiten für die Datenänderungserfassung und stellt sicher, dass die in einer Testmethode vorgenommenen Änderungen an Salesforce-Datensätzen Änderungsereignisse auslösen. Diese Methode aktiviert alle Einheiten nur für den Test und hat keinen Einfluss auf die Auswahl der Einheit "Datenänderungserfassung" für die Organisation.
Nachdem Sie "Datenänderungserfassung" aktiviert haben, führen Sie einige DML-Vorgänge durch und rufen dann die Test.getEventBus().deliver()
-Methode auf. Die Methode übermittelt die Ereignisnachrichten vom Testereignisbus an den entsprechenden Änderungsereignisauslöser und bewirkt, dass der Auslöser aktiviert wird.
Nachrichten zu Teständerungsereignissen werden im Test-Ereignisbus veröffentlicht, der vom Salesforce-Ereignisbus getrennt ist. Sie werden in Salesforce nicht dauerhaft gespeichert und nicht an Ereigniskanäle außerhalb der Testklasse übergeben. Eigenschaften von Nachrichten zu Teständerungsereignissen, wie z. B. die Wiedergabe-ID, werden im Testkontext zurückgesetzt und spiegeln nur die Werte von Testereignisnachrichten wider.
Erstellen und Ausführen eines Tests für den Auslöser
Lassen Sie uns in die Praxis gehen und die Testklasse TestEmployeeChangeTrigger erstellen. Die Testmethode in der Klasse erstellt den Testdatensatz "Employee" und aktualisiert den Datensatz. Jeder dieser Vorgänge aktiviert den Auslöser für das Änderungsereignis für "Employee". Der Test stellt die Ausführung des Auslösers sicher, indem er die Aufgabe, die der Auslöser erzeugt hat, abfragt und die Anzahl der Aufgaben überprüft.
Wenn Sie die Testklasse in der Developer Console ausführen, sind die Debug-Protokolle auf der Registerkarte "Logs" (Protokolle) verfügbar. Für Apex-Tests ist es nicht erforderlich, Debug-Protokolle im Setup für die Einheit "Automatisierter Prozess" einzurichten.
So erstellen Sie die Testklasse:
- Wählen Sie in der Developer Console File | New | Apex Class aus.
- Geben Sie in das Feld "Name" einen Namen für den Auslöser ein:
TestEmployeeChangeTrigger
. - Ersetzen Sie den Standardinhalt durch den folgenden Code.
- Klicken Sie im Fenster "Testklasse" auf Ausführen. Nach Abschluss der Testausführung wird auf der Registerkarte "Tests" der Status des Testlaufs angezeigt.
- Klicken Sie auf die Registerkarte Tests und erweitern Sie den Bereich Overall Code Coverage (Gesamtcodeabdeckung). Die Codeabdeckung für EmployeeChangeTrigger liegt bei 100 %, was das Ergebnis der Ausführung dieses Tests ist.
Sie sind nun bereit, einen Änderungsereignisauslöser mit einer Testklasse zu schreiben, damit Sie ihn in der Produktion bereitstellen können!